私は以下のようにホストファイルを使用しています、
[qa-workstations]
10.39.19.190 ansible_user=test ansible_ssh_pass=test
以下のコマンドを使用してホストで「whoami」コマンドを実行しています
root@Svr:~/ansible# ansible all -a "whoami" -i /etc/ansible/Host
10.39.19.190 | success | rc=0 >>
root
デフォルトでは、ログインしたユーザー名、つまりホストファイルで指定したテストユーザーの代わりにrootを使用しようとする
Ansible cliコマンドでユーザー名を渡そうとすると、正常に動作します
root@Svr:~/ansible# ansible all -a "whoami" -i /etc/ansible/Host -u test
10.39.19.190 | success | rc=0 >>
test
しかし、異なるホストが異なるユーザー名を使用するため、CLIで毎回ユーザー名を渡すことはできません。また、ホストマシンは頻繁に変化し続けるため、各ホストに対して生成されたキーペアはありません。
使用したバージョン:
ansible 1.5.4
Ubuntu 14.04 LTS
プレイブックディレクトリにansible.cfgを作成するか、「グローバル」なansible.cfgを変更します
注:1つの構成ファイルのみが処理されます。以下のリストで最初の方が勝ちます。 http://docs.ansible.com/ansible/intro_configuration.html
- ANSIBLE_CONFIG(環境変数)
- ansible.cfg(現在のディレクトリ内)
- .ansible.cfg(ホームディレクトリ内)
- /etc/ansible/ansible.cfg
[defaults]
remote_user=test
Ansibleの最近のバージョンでは、ホスト定義でansible_user
パラメーターを使用できます。
たとえば、ホストmysql-Host.mydomain
では、接続に必要なユーザーはmysql
です。
[docker-hosts]
mysql-Host.mydomain ansible_user=mysql
ただし、古いバージョンのansibleを使用しているため、代わりにansible_ssh_user
を使用する必要がある場合があります