仕事では利用しているAnsible。 プライベートで使っているサーバーも、構成管理することにしました。 まずは初期構築の部分をまとめてみました。
ansibleのインストール
Ansibleを利用するクライアント側にansibleをインストールします。
|
|
手元ではbotoが入ってなかったので、インストールしました。
|
|
Dynamic Inventoryのインストール
AWSのインスタンスをAnsibleで管理する場合、 インスタンスのIPではなく、Tag Nameで管理できると便利です。 Terminateして立ち上げ直した場合などはIPが変わりますし、 冗長構成の場合は複数台に対して同じ作業がしやすくなります。
そこで、Dynamic Inventoryという仕組みを使います。
ec2.pyとec2.iniをダウンロードします。 https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/ec2.py https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/ec2.ini
動作確認です。
|
|
SSHの設定を書くために、同じディレクトリにansible.cfgを設置します。 sshの設定ファイルを読む設定と、Persistの設定を記載しています。
[ssh_connection]
control_path = %(directory)s/%%h-%%r
ssh_args = -o ControlPersist=15m -F ssh_config -q
scp_if_ssh=True
SSH接続する際の設定をssh_configに記載します。 接続ユーザーと鍵の設定をしています。
Host *
User ec2-user
IdentityFile /aws.pem
動作確認
ansibleコマンドでuptimeを打ってみます。
|
|
まとめ
そんなにハマるところはなかったですが、繋がらないなとハマったら、 sshの接続を疑うとこからはじめて見ましょう。
|
|
鍵の場所が正しくないとか、大体のミスは発見できます。