URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

"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

 他の機能についても、サンプルも充実しているので順次試していきたいです。
 なにせ、クラウドは試しに作って、壊して、また作ってというのが簡単にできますので。