目次

9.自動化設定-cloud-init

Cloud-Initは、ホスト名、ネットワークインターフェース、承認キーなどの仮想マシンの初期設定を自動化するためのツールです。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/pdf/configuring_and_managing_cloud-init_for_rhel_8/Red_Hat_Enterprise_Linux-8-Configuring_and_Managing_cloud-init_for_RHEL_8-ja-JP.pdf
https://cloudinit.readthedocs.io/en/latest/topics/modules.html#modules
https://qiita.com/yamada-hakase/items/b42aed68e5623ed74024

インフラ構築時の注意点としては、AMI化したインスタンスからリストアする際に、cloud-initによって、設定が初期化されないようにしたい。

cloud-initの設定方法

#変更
vi /etc/cloud/cloud.cfg

cloud-initの設定詳細

下記のmodulesでそれぞれ指定されている子プロセスをコメントアウトすることで無効化する。
・cloud_init_modules:
・cloud_config_modules:
・cloud_final_modules:

インフラ構築/RHEL8/91.cloud-init調査の結果を元に記載

奥が深すぎるので、学習したら随時更新する。

cloud_init_modules:
# - set_hostname
# - update_hostname
# - update_etc_hosts
# - users-groups
# - ssh
 
cloud_config_modules:
# - locale
# - set-passwords
# - package-update-upgrade-install
# - timezone
 
preserve_hostname: true

初期値

#初期値
users:
 - default

disable_root: 1
ssh_pwauth:   0

mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']
resize_rootfs_tmp: /dev
ssh_deletekeys:   1
ssh_genkeytypes:  ~
syslog_fix_perms: ~
disable_vmware_customization: false

cloud_init_modules:
 - disk_setup
 - migrator
 - bootcmd
 - write-files
 - growpart
 - resizefs
 - set_hostname
 - update_hostname
 - update_etc_hosts
 - rsyslog
 - users-groups
 - ssh

cloud_config_modules:
 - mounts
 - locale
 - set-passwords
 - rh_subscription
 - yum-add-repo
 - package-update-upgrade-install
 - timezone
 - puppet
 - chef
 - salt-minion
 - mcollective
 - disable-ec2-metadata
 - runcmd

cloud_final_modules:
 - rightscale_userdata
 - scripts-per-once
 - scripts-per-boot
 - scripts-per-instance
 - scripts-user
 - ssh-authkey-fingerprints
 - keys-to-console
 - phone-home
 - final-message
 - power-state-change

system_info:
  default_user:
    name: ec2-user
    lock_passwd: true
    gecos: Cloud User
    groups: [adm, systemd-journal]
    sudo: ["ALL=(ALL) NOPASSWD:ALL"]
    shell: /bin/bash
  distro: rhel
  paths:
    cloud_dir: /var/lib/cloud
    templates_dir: /etc/cloud/templates
  ssh_svcname: sshd

# vim:syntax=yaml