web-dev-qa-db-ja.com

Ansible:ホストごとに異なるSudoユーザーを使用する

最近、ansibleを使い始めました。サーバーxyz.comのように、アプリケーションがさまざまなユーザーの下でセットアップされているサーバーがあり、UNIXユーザーはxyz_userなどです。

したがって、xyz.comの場合、

ansible xyz.com -a 'command' -u xyz_user -K

サーバーに定義された特定のユーザーに自動的にSudoを実行できるように、Ansible構成でSudoユーザーをどのように設定できますか?

4
nitins

あなたはこれらの種類のもののためにansibleプレイブックを活用することができます。

例えば.

--- 
- hosts: Host1:Host2 
  user: user1 
  Sudo: yes
  tasks: 
  - name: update package list 
    action: command /usr/bin/apt-get update 
  - name: upgrade packages 
    action: command /usr/bin/apt-get -u -y dist-upgrade 
- hosts: Host3 
  user: ubuntu
  Sudo: yes 
  tasks: 
  - name: update package list 
    action: command /usr/bin/apt-get update 
  - name: upgrade packages 
    action: command /usr/bin/apt-get -u -y dist-upgrade

それがあなたのために働くことを願っています:)

7
kaji

インベントリまたはグループ変数に基づいてホスト変数を使用することをお勧めします。これにより、ホストごとまたはホストのグループごとにsshユーザーを設定できます。このアプローチの利点は、プレイブックに対して透過的であることです。プレイブックでは、アクセスするのではなく、インストールすることだけを心配する必要があります。

ホストとグループでユーザーを設定する方法の例:

[xyz]
www.xyz.com ansible_ssh_user=xyz_user

[abc]
www.abc.com

[abc:vars]
ansible_ssh_user=abc_user

そして、これは私よりはるかにうまく機能する方法を説明するドキュメントです: http://docs.ansible.com/intro_inventory.html

13
zimbatm