使用 Ansible 显示远程命令的输出 [英] Displaying output of a remote command with Ansible

查看:27
本文介绍了使用 Ansible 显示远程命令的输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

In an Ansible role I generate the user's SSH key. After that I want to print it to the screen and pause so the user can copy and paste it somewhere else. So far I have something like this:

- 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="Please add the SSH public key above to your GitHub account"

显示 SSH 公钥"任务完成但不显示输出.

The 'Show SSH public key' task completes but doesn't show the output.

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

可能有更好的方法来解决这个问题.我真的不喜欢它总是显示已更改"状态的事实.我确实找到了 ansible 的拉取请求 - https://github.com/ansible/ansible/pull/2673 - 但不确定我是否可以在不编写自己的模块的情况下使用它.

There may be a better way of going about this. I don't really like the fact that it will always show a 'changed' status. I did find this pull request for ansible - https://github.com/ansible/ansible/pull/2673 - but not sure if I can use it without writing my own module.

推荐答案

我不确定您的特定命令(例如 vagrant 等)的语法,但总的来说...

I'm not sure about the syntax of your specific commands (e.g., vagrant, etc), but in general...

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

Just register Ansible's (not-normally-shown) JSON output to a variable, then display each variable's stdout_lines attribute:

- 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="Please add the SSH public key above to your GitHub account"
  register: pause
- debug: var=pause.stdout_lines

这篇关于使用 Ansible 显示远程命令的输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆