Ansible 2.1
Ansibleホスト:Ubuntu 16.04
リモートホスト:CentOS 6.5
私はAnsibleにかなり慣れていません。私は単純なansibleプロジェクトがあります:
├── hosts
├── roles
│ └── setup
│ ├── defaults
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ └── templates
│ └── automation-agent.config.j2
└── site.yml
プレイブックを実行するために使用したコマンド:
ansible-playbook -i hosts site.yml --user admin --ask-pass
リモートホストで、ユーザーadmin
にroot権限を設定しました。
root ALL=(ALL) ALL
admin ALL=(ALL) ALL
ただし、プレイブックのタスクの1つが問題になりました。
- name: Back up Automation Agent config file if exists
command: mv /etc/mongodb-mms/automation-agent.config /etc/mongodb-mms/automation-agent.config.bak
Ansibleレポート:
TASK [setup : Back up Automation Agent config file if exists] ******************
fatal: [192.168.241.135]: FAILED! => {"changed": true, "cmd": ["mv", "/etc/mongodb-mms/automation-agent.config", "/etc/mongodb-mms/automation-agent.config.bak"], "delta": "0:00:00.002588", "end": "2016-06-01 22:57:55.577158", "failed": true, "rc": 1, "start": "2016-06-01 22:57:55.574570", "stderr": "mv: cannot move `/etc/mongodb-mms/automation-agent.config' to `/etc/mongodb-mms/automation-agent.config.bak': Permission denied", "stdout": "", "stdout_lines": [], "warnings": []}
/etc/mongodb-mms/automation-agent.config
の権限設定は0600
であることに注意してください
-rw-------. 1 mongod mongod 313 Jun 1 04:48 automation-agent.config
どうやら、このファイルを変更するには、Sudo
権限が必要です。 Ansibleの--become
と--become-user
を試しましたが、うまくいきませんでした。
ansible-playbook -i hosts site.yml --user admin --ask-pass --become --become-user admin
AnsibleでSudo
を取得してそのファイルに変更を加えるにはどうすればよいですか?
--become-user admin
を使用しているため、基本的にはSudo -u admin
を実行していますが、root
(Sudo -u root
)になる予定です。
--become-user admin
を指定しないでくださいまたは--become-user root
を使用すると、デフォルトでAnsibleがroot
になろうとします。
root
になるためのパスワードを指定する必要がある場合は、--ask-become-pass
フラグを使用します。
Sudo
を使用するときにSudo
パスワードの入力を求められないようにするには、代わりにsudoers
ユーザーのadmin
エントリを次のように読みます。
admin ALL=(ALL) NOPASSWD:ALL