用Ansible显示远程命令的输出

在Ansibleangular色中,我生成用户的SSH密钥。 之后,我想打印到屏幕上,并暂停,以便用户可以复制并粘贴到其他地方。 到目前为止,我有这样的东西:

- name: Generate SSH keys for vagrant user user: name=vagrant generate_ssh_key=yes ssh_key_bits=2048 - name: Show SSH public key command: /bin/cat $home_directory/.ssh/id_rsa.pub - name: Wait for user to copy SSH public key pause: prompt="Plase add the SSH public key above to your GitHub account" 

“显示SSH公钥”任务完成,但不显示输出。

 TASK: [Show SSH public key] *************************************************** changed: [default] 

这可能有更好的方法。 我不太喜欢它总是会显示“改变”状态的事实。 我确实发现这个拉请求 – https://github.com/ansible/ansible/pull/2673 – 但不知道如果我可以使用它,而不写我自己的模块。

我不确定你的特定命令的语法(例如,stream浪等),但一般来说…

只需将Ansible的(通常不显示的)JSON输出注册到一个variables,然后显示每个variables的stdout_lines属性:

 - name: Generate SSH keys for vagrant user user: name=vagrant generate_ssh_key=yes ssh_key_bits=2048 register: vagrant - debug: var=vagrant.stdout_lines - name: Show SSH public key command: /bin/cat $home_directory/.ssh/id_rsa.pub register: cat - debug: var=cat.stdout_lines - name: Wait for user to copy SSH public key pause: prompt="Plase add the SSH public key above to your GitHub account" register: pause - debug: var=pause.stdout_lines 

如果您将-v标志传递给ansible-playbook命令,则ansible将在您的terminal上显示输出。

对于您的用例,您可能想尝试使用获取模块将公钥从服务器复制到本地计算机。 这样,文件更改时只会显示“更改”状态。

打印pubkey,并通过添加changed_when: False来避免更改的状态changed_when: False to cat task:

 - name: Generate SSH keys for vagrant user user: name=vagrant generate_ssh_key=yes ssh_key_bits=2048 - name: Check SSH public key command: /bin/cat $home_directory/.ssh/id_rsa.pub register: cat changed_when: False - name: Print SSH public key debug: var=cat.stdout - name: Wait for user to copy SSH public key pause: prompt="Plase add the SSH public key above to your GitHub account" 
Interesting Posts