web-dev-qa-db-ja.com

Ansibleは、リモートホストでコマンドを発行すると「許可が拒否されました」と報告します。

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を取得してそのファイルに変更を加えるにはどうすればよいですか?

5
Howard Lee

--become-user adminを使用しているため、基本的にはSudo -u adminを実行していますが、rootSudo -u root)になる予定です。

--become-user adminを指定しないでくださいまたは--become-user rootを使用すると、デフォルトでAnsibleがrootになろうとします。

rootになるためのパスワードを指定する必要がある場合は、--ask-become-passフラグを使用します。

Sudoを使用するときにSudoパスワードの入力を求められないようにするには、代わりにsudoersユーザーのadminエントリを次のように読みます。

admin   ALL=(ALL)       NOPASSWD:ALL
3
Deltik