| Works
"cloud-config"で簡単な初期設定
ここの所、会社でOpenStackの検証環境を作っています。
で、基盤部分がやっとできたのでインスタンスを作っていろいろ試していくわけですが、いちいち手作業で初期設定していくのは面倒なのでカスタマイズ・スクリプトを積極的に使いたいと思ってます。
そんな感じで作り込めばいろいろできるみたいなのですが、まずは自分がよく使いそうな基本的な部分のメモです。
一般的に公開されているCloud Imageはデフォルトでパスワードログインができず、基本的にはキーペアを作ってSSHでアクセスします。
ただ、それでは困る場合があるので、パスワードログインできるようにします。
("PASSWORD"の部分を設定したいパスワード文字列をにします。)
#cloud-config
password: PASSWORD
chpasswd: { expire: False }
ssh_pwauth: true
設定ファイルとか任意のテキストファイルを作成することもできます。パーミッションの設定もできるみたいです。
下記は"ifcfg-eth0"を書き換えています。(実用上はネットワーク部分はこういった方法は取らないですが。)
#cloud-config
write_files:
- owner: root:root
path: /etc/sysconfig/network-scripts/ifcfg-eth0
permissions: '0644'
content: |
DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
PERSISTENT_DHCLIENT=1
DNS1=8.8.8.8
DNS2=8.8.4.4
あとは任意のコマンドが実行できれば大抵のことはできますね。
例えば、mainlineのnginxを"nginx.org"のレポジトリからyumでインストールします。
#cloud-config
runcmd:
- yum -y install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- cp -p /etc/yum.repos.d/nginx.repo /etc/yum.repos.d/nginx.repo.orig
- sed -i 's/centos/mainline\/centos/' /etc/yum.repos.d/nginx.repo
- yum -y install nginx
他の機能についても、サンプルも充実しているので順次試していきたいです。
なにせ、クラウドは試しに作って、壊して、また作ってというのが簡単にできますので。