#ansibleを利用して実行環境を設定
Ansibleを使えた!と思うまでかなり時間がかかったので、環境構築を共有したいと思います。
概要
1.コントロールノードと、ターゲットノードの作成
2.コントロールノードにAnsibleのインストール
3.インベントリファイル作成
4.アドホックコマンドで疎通確認
##asnible簡単な実行環境設定
ec2-userでsshログイン
$ cd ~/.ssh
$ ssh -i "ansible-key.pem" ec2-user@13.114.50.230
ansibleのインストール
$ sudo yum update
$ sudo yum -y install python-devel openssl-devel gcc git
$ sudo easy_install pip
$ sudo pip install ansible
$ ansible --version
コントロールサーバの.ssh
ディレクトリ内のauthorized_keys
の権限を変更
$ $ chmod 600 ~/.ssh/authorized_keys
EC2を作成時に利用するキーを指定し、秘密鍵がパソコンにあると思うので、macからコントロールノードにsshキーを渡す。
$ scp -i ~/.ssh/ansible-key.pem ~/.ssh/ansible-key.pem <user名>@<host名>:/home/ec2-user/.ssh/
コントロールノードにログイン後リモートノードにssh接続ができるか確認
$ ssh -i "ansible-key.pem" ec2-user@13.115.139.232
作業ディレクトリの作成 ※ここでansible
コマンドは実行します。
$ mkdir ~/ansible/inventory
$ cd ~/ansible/inventory
インベントリファイルのhosts
を編集
$ sudo vim hosts #インベントリファイルの作成
[client_node]
Clinet01 ansible_ssh_host=54.250.190.241 #targetノードのIPアドレス
[client_node:vars]
ansible_ssh_user=ec2-user
ansible_ssh_private_key_file=/home/ec2-user/.ssh/ansible-key.pem
アドホックコマンドのping
を利用して疎通確認。
アドホックコマンドは、めったに繰り返さないタスクに最適です。たとえば、クリスマス休暇のためにラボのすべてのマシンの電源をオフにしたい場合、プレイブックを作成せずにAnsibleで簡単なワンライナーを実行できます。アドホックコマンドは次のようになります。
$ ansible [pattern] -m [module] -a "[module options]"
[pattern]にはどのフォルダのどのファイルのどのグループを指定するかを書く
$ ansible -i invenrory//hosts client_node -m ping
[WARNING]: Platform linux on host Clinet01 is using the discovered Python
interpreter at /usr/bin/python, but future installation of another Python
interpreter could change this. See https://docs.ansible.com/ansible/2.8/referen
ce_appendices/interpreter_discovery.html for more information.
Clinet01 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
これでコントロールノードから、ターゲットノードにつながりました。