将python输出管道化到Ansible变量中

将python输出管道化到Ansible变量中,ansible,ansible-playbook,Ansible,Ansible Playbook,我有一个输出散列的python脚本。我希望该散列通过管道传输到ansible脚本内部的变量中 Python命令如下所示- #!/bin/python import crypt test= crypt.crypt('test', '$6$Som3S@lt$') print test 我的ansible剧本看起来像这样- hosts: webservers remote_user: test become: yes become_method: sudo vars:

我有一个输出散列的python脚本。我希望该散列通过管道传输到ansible脚本内部的变量中

Python命令如下所示-

#!/bin/python
import crypt
test= crypt.crypt('test', '$6$Som3S@lt$')
print test
我的ansible剧本看起来像这样-

 hosts: webservers
  remote_user: test
  become: yes
  become_method: sudo

  vars:
      pass:


  tasks:

  - name: Run Python Password script
    command: /home/test/userPW.py > pass
谢谢

尝试注册

➜  ~ cat test.yml
---
- hosts: 127.0.0.1
  user: jenkins
  connection: local
  tasks:
    - name: password
      shell: cat /tmp/pass
      register: pass

    - debug: var=pass.stdout

➜  ~ ansible-playbook -i hosts test.yml


PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [127.0.0.1]

TASK [password] ****************************************************************
changed: [127.0.0.1]

TASK [debug] *******************************************************************
ok: [127.0.0.1] => {
    "pass.stdout": "mypassword"
}

PLAY RECAP *********************************************************************
127.0.0.1                  : ok=3    changed=1    unreachable=0    failed=0
试着用寄存器

➜  ~ cat test.yml
---
- hosts: 127.0.0.1
  user: jenkins
  connection: local
  tasks:
    - name: password
      shell: cat /tmp/pass
      register: pass

    - debug: var=pass.stdout

➜  ~ ansible-playbook -i hosts test.yml


PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [127.0.0.1]

TASK [password] ****************************************************************
changed: [127.0.0.1]

TASK [debug] *******************************************************************
ok: [127.0.0.1] => {
    "pass.stdout": "mypassword"
}

PLAY RECAP *********************************************************************
127.0.0.1                  : ok=3    changed=1    unreachable=0    failed=0
看见另请参见。也看到