Vagrant Provisionerで「become」(または「sudo」)が機能しない


0

スーパーユーザーansibleが実行するアクションを操作しながら、Vagrantのプロバイダーを介してAnsibleを使用するにはどうすればよいbecomeですか?これまでに試みたすべての試みは、まったく説明できない理由で機能しません。

このシナリオでは、aptアクションに注釈を付けbecomeて、適切な権限を付与しています。でトリガされAnsible呼び出し、vagrant provision、経由でSSHingされるvagrant(ベイグラントは現在経由して、デフォルトで強制ユーザーansibleプロバイダ)、パスワードなしたユーザーsudo2つのベースボックスに、デフォルトでは、私が試してみた:ubuntu/trusty64debian/stretch64

基礎となるVMでパスワードなしのsudoがサポートされているようですが、これは機能せず、次のエラーが発生します。

fatal: [default]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}  

Vagrantボックスはデフォルトでボックスのユーザー名とパスワードにvagrant/ vagrantを使用するため、Vagrantfileを更新してsudoパスワードを明示的に要求します。

config.vm.provision "ansible" do |ansible|
  ansible.playbook = 'main.yml'
  ansible.ask_become_pass = true

パスワードを求めるプロンプト:

   default: Running ansible-playbook...
SUDO password:

ただし、VMの入力にvagrant使用vagrant sshして、これが正しいパスワードであることを確認できたとしても、入力後も失敗します。

fatal: [default]: FAILED! => {"changed": false, "module_stderr": "Sorry, try again.\n[sudo via ansible, key=XXXXXXXXXXXXXXXXXXX] password: \nsudo: 1 incorrect password attempt\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}

興味深いことに、ansible_localプロバイダーはubuntu/trusty64ボックスに対しては正常に動作しますがdebian/stretch64、まったく無関係な理由で失敗します。したがって、sudoを使用したSSHを介したVagrantとAnsibleの相互作用に特に関係があるようです。

VagrantおよびAnsibleのインストールに関する情報:

$ ansible --version
ansible 2.7.1
  config file = None
  configured module search path = ['/Users/XXXXXX/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']                                                                                   
  ansible python module location = /usr/local/lib/python3.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.7.1 (default, Nov  6 2018, 18:46:03) [Clang 10.0.0 (clang-1000.11.45.5)]
$ vagrant --version
Vagrant 2.2.2

Vagrantのプロビジョニングツールを使用する現在の推奨される信頼できる方法は何ですか?ありがとう。ansiblebecome

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.