2016-12-30 2 views
-1

私はXagial 16.04 VMを迷路を使って実行しています。 VMはrootのパスワードを使わずにvagrantのユーザーと一緒に出荷されます(ただし、root @ ubuntu-vmにsshする場合はUbuntuにパスワードが必要です) プロダクションVPSをシミュレートするために、deployerこの脚本を使用したユーザー:私は[email protected]にsshをすると新しく作成したUbuntuユーザーとsudoを使用することはできません

- user: 
    name: deployer 
    groups: admin 
    password: "{{ deployer_password }}" 
    shell: /bin/bash 

- name: "read authorized keys from root user" 
    become_user: vagrant 
    command: "cat ~/.ssh/authorized_keys" 
    register: "root_authorized_keys" 

- debug: msg="{{root_authorized_keys}}" 

- name: "create .ssh dir for deployer" 
    file: path="/home/deployer/.ssh" state=directory 


- name: "copy authorized keys to deployer user" 
    shell: "echo '{{root_authorized_keys.stdout}}' > /home/deployer/.ssh/authorized_keys" 


- name: "chown the authorized_keys file" 
    file: path="/home/deployer/.ssh" recurse=yes mode=0700 owner="deployer" 

私は1が期待するべきであると、私はVMにログインパスワードを入力するよう求められています。また、deployerユーザーのパスワードを入力した後、sudosudo suが正常に機能します。

私がsudoにAnecessのプレイブックまたはAnsible ad-hocコマンドで試してみると、問題が発生します。

注私は、次の4 Ansibleのために取得応答コマンド:

$ ansible all -m ping -u vagrant 
ubuntu-vm | SUCCESS => { 
    "changed": false, 
    "ping": "pong" 
} 

$ ansible all -m ping -u deployer 
ubuntu-vm | SUCCESS => { 
    "changed": false, 
    "ping": "pong" 
} 

$ ansible all -m ping -u vagrant --sudo 
ubuntu-vm | SUCCESS => { 
    "changed": false, 
    "ping": "pong" 
} 

$ ansible all -m ping -u deployer --sudo 
ubuntu-vm | FAILED! => { 
    "changed": false, 
    "failed": true, 
    "module_stderr": "sudo: a password is required\n", 
    "module_stdout": "", 
    "msg": "MODULE FAILURE" 
} 

は、私は正常deployerためsudoを使用するためにどのようなオプションがありますか?

はまたubuntu-vmホストのremote_uservagrantdeployerユーザーの両方になることを考慮に入れます。可能であれば、私は脚本(例:私はdeployerユーザーを作成するvagrantユーザーを使用して、私は他の戯曲のためdeployerユーザーを使用)の両方で使用する方法をご希望の

答えて

2

--ask-sudo-pass

にそれを試してみてくださいパスワードの入力を求められます。 Ansible 1.9+で

ansible all -m ping -u deployer --sudo --ask-sudo-pass 

--sudo以来--become--ask-become-passを使用することが推奨されており、--ask-sudo-passは推奨されません。 Become (Privilege Escalation)

+0

これは 'ansible-playbook'でも使用できますか?どうすれば複数のユーザーのパスワードを渡すことができますか? (上記の質問の後に書いたイタリック体のテキストを参照してください) –

+0

'--ask-become-pass'は、1人のユーザだけにパスワードを渡す必要がある場合に機能しますが、複数のユーザにパスワードを渡す方法はわかりません。 –

+0

私は、Anabilities Vaultを使用しない限り、複数のユーザーにパスワードを渡すことはできないと思います。参照してください:http://serverfault.com/questions/560106/how-can-i-implement-ansible-with-per-host-passwords-securely – helloV

関連する問題