2015-11-22 4 views
9

私の「Ansible」プレイブックでsudoを使ってタスクを実行しようとすると、エラーメッセージが表示されます。ここでsudoing時にパスワードがなくなる

は私の脚本です:

--- 
- hosts: production 
    gather_facts: no 
    remote_user: deployer 
    become: yes 
    become_method: sudo 
    become_user: root 

    tasks: 
    - name: Whoami 
     command: /usr/bin/whoami 

私はrootするにwhoami期待するだろうが、タスクはエラーメッセージで失敗します。

» ansible-playbook -i ansible_hosts sudo.yml --ask-sudo-pass 
SUDO password: [I paste my sudo password here] 

PLAY [production] ************************************************************* 

GATHERING FACTS *************************************************************** 
fatal: [MY.IP] => Missing become password 

TASK: [Whoami] **************************************************************** 
FATAL: no hosts matched or all hosts have already failed -- aborting 

私は手動で箱の中にSSHと須藤にそれをしようとすると

» ssh [email protected] 
» sudo whoami 
[I paste the same sudo password] 
root 

デプロイヤーユーザーのパスワードはAnsiblによって設定されています(別の脚本で)次のようにE:

- hosts: production 
    remote_user: root 

    # The {{ansible_become_pass}} comes from this file: 
    vars_files: 
    - ./config.yml 

    tasks: 

    - name: Create deployer user 
     user: name=deployer uid=1040 groups=sudo,deployer shell=/bin/bash password={{ansible_become_pass}} 

{{ansible_become_pass}}は、私は次のPythonスニペットを使用してハッシュ願望パスワードです:

python -c 'import crypt; print crypt.crypt("password I desire", "$1$SomeSalt$")' 

"password I desire"は、パスワードと"$1$SomeSalt$"と交換では、ランダムな塩であります。

私はAnsibleバージョン1.9.4を使用しています。

問題が何ですか?

+0

あなたのプレイブックの両方を試してみましたが、彼らは1.9.2で大変でした。私が作った唯一の変更は、安全なユーザーパスワードを設定することでした。別のファイルからインクルードするのではなく、値を貼り付けました。私はそれが違いをもたらすだろうと想像することはできません。私はちょうど私のワークステーションを使っていて、localhostに接続していました。 –

+0

おそらくあなたのバージョンのバグは--ask-sudoスイッチとあなたの作戦の構文になるでしょうか? --ask-sudoと--ask-becomeの両方を試してみたところ、どちらもうまくいきました。 –

答えて

4

--ask-passさんとあなたのバージョンとプレイブックを試しましたが、これは"stdout": "root"という結果を返します。

--ask-sudo-pass--ask-passに置き換える必要があります。また、デプロイヤーのユーザーにroot権限があることを確認してください。

$ ./bin/ansible --version 
ansible 1.9.4 
$ ./ansible/bin/ansible-playbook -vv pl.yml --ask-pass 
SSH password: 

PLAY [localhost] ************************************************************** 

TASK: [Whoami] **************************************************************** 
<localhost> REMOTE_MODULE command /usr/bin/whoami 
changed: [localhost] => {"changed": true, "cmd": ["/usr/bin/whoami"], "delta": "0:00:00.002555", "end": "2015-12-05 07:17:16.634485", "rc": 0, "start": "2015-12-05 07:17:16.631930", "stderr": "", "stdout": "root", "warnings": []} 

PLAY RECAP ******************************************************************** 
localhost     : ok=1 changed=1 unreachable=0 failed=0 
関連する問題