CentOS 7
Sponsored Link

Ansible : 基本的な操作方法
2015/07/15
 
Ansible の基本的な利用方法です。書式は以下のようになります。
⇒ ansible [対象サーバー] [オプション] -m [モジュール] -a [モジュールの引数]
※ モジュールは非常に多数のものが公開されており、個々の機能は公式ドキュメントで参照可能です。
⇒ http://docs.ansible.com/modules_by_category.html
Ansible は管理対象クライアントへ SSH アクセスするため、認証が必要になります。
また、Ansible は一般ユーザーでも利用可能ですが、クライアント上で root 権限を行使する場合は sshd での root ログイン許可 または 事前に sudo による任意の一般ユーザーへの特権行使許可設定、などが必要になります。
[1] クライアントに対して root ログイン許可(PermitRootLogin が no 以外) + 鍵認証(キーパスフレーズ無し) の場合は、以下のようなコマンド指定で利用できます。 パスフレーズ付き鍵ペアの場合は SSH-Agent を起動しておけば、同様のコマンド指定で利用可能です。
# target_servers に対して Ping モジュールを実行

[root@dlp ~]#
ansible target_servers -m ping

10.0.0.51 | success >> {
    "changed": false,
    "ping": "pong"
}

10.0.0.52 | success >> {
    "changed": false,
    "ping": "pong"
}
[2] 鍵認証ではなく、パスワード認証で接続したい場合は、k オプションを指定してパスワードを入力することで利用可能です。 ただし、前提として、全ホストで同じパスワードが設定されている、且つ SSHPass をインストールしておく必要があります
# target_servers に対して uptime コマンドを実行

[root@dlp ~]#
ansible target_servers -k -m command -a "uptime"

SSH password:
10.0.0.52 | success | rc=0 >>
 10:28:07 up 10 min,  2 users,  load average: 0.01, 0.02, 0.03

10.0.0.51 | success | rc=0 >>
 10:28:07 up 11 min,  1 user,  load average: 0.01, 0.03, 0.05
[3]
SSH での root ログインが禁止されている場合は、任意の一般ユーザーで SSH 接続することになりますが、 root 権限が必要な作業を実施する場合は、全ホストの root パスワードが同じ 且つ それを知っている状態が必要、あるいは事前にターゲットホスト上で SSH 接続対象ユーザーに対して sudo の設定をしておくなどの対応が必要となります。 前者はセキュリティ面で好ましくありません。
以下はターゲットホスト上で「cent」ユーザーに「cent ALL=(ALL) ALL」を設定した状態での、Ansible ホストからの sudo 権限を利用した接続です。 「-b (--become)」オプションで権限昇格し、「--ask-become-pass」でパスワードを入力します。( sudo で「NOPASSWD」設定している場合は不要)
root ユーザー以外の権限を利用したい場合は「--become-user=xxx」で明示的に指定します。
sudo 以外の昇格方法 (sudo | su | pbrun | pfexec | runas) を利用したい場合は「--become-method=xxx」で明示的に指定します。
# target_servers に対して /etc/shadow を表示する

[cent@dlp ~]$
ansible target_servers -k -m command -a "cat /etc/shadow" -b --ask-become-pass

SSH password:
SUDO password[defaults to SSH password]:
10.0.0.51 | success | rc=0 >>
root:$6$xxxxxxxxxx:15441:0:99999:7:::
bin:*:15240:0:99999:7:::
daemon:*:15240:0:99999:7:::
.....
.....

10.0.0.52 | success | rc=0 >>
root:$6$xxxxxxxxxx:15441:0:99999:7:::
bin:*:15240:0:99999:7:::
daemon:*:15240:0:99999:7:::
.....
.....
 
Tweet