🎈
EC2(Ubuntu)へパスワード認証でAnsibleを実行する
ubuntuがインストールされているEC2に向けてAnsibleをPCから実行する手順です。
実行といってもpingコマンド投げて、無事エラーなくレスポンスが返ってくることを確認するだけです。
※この記事ではAnsibleのインストールは説明していません。
前提
EC2にubuntuを入れた際、デフォルトではubuntuユーザが入っていますがその他にansibleというユーザを作成します。
ansibleユーザはパスワード認証のみでログイン可能、sudo権限ありの設定です。
一般的にはパスワード認証よりも鍵認証が推奨されていますが、今回はパスワード認証を採用しています。
ディレクトリ構成
ディレクトリ構成
.
├── README_prepare.md
├── ansible.cfg
├── inventory
│ └── test_inventory.ini
└── playbook.yml
各ファイル作成
以下の内容がほぼ答えです。
inventory/test_inventory.ini
[webservers]
XXX.XXX.XXX.XX // ec2のパブリックIP
[test_server]
ansible_ssh_user=ubuntu // 作成したユーザを指定
ansible_ssh_pass=password // 作成したユーザのパスワードを指定
playbookを作成します。
内容はpingを投げて、疎通確認をするだけの処理です。
playbook.yml
---
- hosts: webservers
remote_user: ansible // ユーザを指定します
become: True // sudoコマンドを許可します
tasks:
- name: try ping
ping:
ansibleの設定を記述します。
ansible.cfg
[defaults]
ask_pass = True
remote_tmp = /tmp/.ansible-$ {USER} / tmp
ansible_sudo_pass=password
ask_pass … ask_passをtrueにするとパスワード認証時にパスワード入力が求められます
remote_tmp … tmpディレクトリを別の場所に作られないように指定
ansible_sudo_pass … sudoパスワードが聞かれた時用
実行
実行してましょう。
% ansible-playbook -i ./inventory/test_inventory.ini playbook.yml
上記でうまくいかなかったら、後ろにオプションをつけた下を叩いてみてください
% ansible-playbook -i ./inventory/test_inventory.ini playbook.yml -kK
-kK
- k, --ask-pass: 接続時パスワードを入力する(ansibleユーザのパスワード)
- K, --ask-become-pass: sudoパスワードを入力する
結果
okが出たら成功です。
TASK [Gathering Facts] **********************************************************************************************************************************
ok: [XXX.XXX.XXX.XX]
TASK [try ping] *****************************************************************************************************************************************
ok: [XXX.XXX.XXX.XX]
参考
Discussion