Memo/Linux/cloud-init

https://dexlab.net:443/pukiwiki/index.php?Memo/Linux/cloud-init
 

cloud-init

  • https://launchpad.net/cloud-init
    • Documentation — Cloud-Init 18.4 documentation
    • クラウドで、サーバの初期化処理をある程度自動化できる。
    • ただし、デフォルトでcloud-initが動いている場合で、後から設定を書き換えたい場合は邪魔になる事も。
    • /etc/cloud/cloud.cfg に書いて無いオプションもデフォルトで起動したりするので分かりにくい。

テスト


/etc/resolv.conf, /etc/sysconfig/network-scripts/ifcfg-eth0が勝手に書き換わる

原因が複数ある。

  • 環境
    • CentOS 6/7
  • AMIによっては、cloud-initがデフォルトで入っていて、/etc/resolv.conf を書き換えてしまう。
    • /var/log/cloud-init.log , /var/log/messages にログが出る
      2018-12-01 10:01:12,135 - stages.py[INFO]: Applying network configuration from fallback bringup=False: {'version': 1, 'config': [{'subnets': [{'type': 'dhcp'}], 'type': 'physical', 'name': 'eth0', 'mac_address': '0a:c7:55:d8:a0:cc'}]}
      2018-12-01 10:01:12,138 - util.py[DEBUG]: Writing to /etc/sysconfig/network-scripts/ifcfg-eth0 - wb: [420] 159 bytes
  • /etc/sysconfig/network-scripts/ifcfg-eth0 が書き換わり、「PEERDNS=no」が消えて、/etc/resolv.conf が再生成されるのを防ぐ

再起動時にcloud-initによって自動的にhostnameが変わってしまうのを防ぐ

sudo vim /etc/cloud/cloud.cfg
----
preserve_hostname: true

cloud_init_modules:
# - update_hostname
----

cloud-init: EC2起動時にコマンド実行

  • Linux インスタンスでの起動時のコマンドの実行
    • CentOS 7 with updates, Amazon Linux AMI等デフォルトでcloud-initが入っている
    • ログ:/var/log/cloud-init.log
    • user-dataの行頭が"#!"の場合はシェルスクリプト、"#cloud-config"の場合はyamlとして処理される
    • 1度目のテストをするには
      sudo rm -rf /var/lib/cloud/*
  • サンプル
    • 起動後にyum updateを実行しない
    • ホスト名を変更しない
    • /etc/resolve.conf を変更しない。
    • /etc/sysconfig/network-scripts/ifcfg-eth0 を変更しない。
    • ephemeral0 を /mnt にマウントさせない
    • swap 専用デバイス(m1.small, c1.mediumのみ)があれば付ける。
      #cloud-config
      
      repo_upgrade: none
      
      preserve_hostname: true
      
      manage_resolv_conf: false
      
      network:
        config: disabled
      
      mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
      
      mounts:
       - [ swap, none, swap, sw, 0, 0 ]
       - [ ephemeral0, null ]
       - [ ephemeral1, null ]
       - [ ephemeral2, null ]
       - [ ephemeral3, null ]
      
      cloud_init_modules:
      # - update_hostname

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-11-07 (木) 11:03:09 (5d)