TL;DR
- コピペはよくない
- ansibleがremote_userの設定を見に行く順番は
- playbook(site.yml)
- -u オプション
- 環境変数 ANSIBLE_CONFIG
- ansible.cfg
- ~/.ansible.cfg
- /etc/ansible/ansible.cfg
背景
playbookを作ってinventoryファイルに対象を書いてリモートサーバに対して実行しようとplaybookを流してみると
fatal: [10.XXX.XXX.XXX]: UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n",
"unreachable": true
}
な感じで怒られる。
ansible all -m ping -i hosts
10.XXX.XXX.XXX | SUCCESS => {
"changed": false,
"ping": "pong"
}
はこんな感じでちゃんと成功する
ansible-playbook -i hosts -vvv -u hoge
みたいに書いても
カレントディレクトリにansible.cfg置いてremote_user=hoge
を書いても
/etc/ansible/ansible.cfg
にremote_user=hoge
を書いても反映されない
なんでだろうなって思ったら、どこかからコピペしてきたsite.ymlにremote_user=root
って書いてて
そりゃrootで実行されるわって思いました。