gpt4 book ai didi

command-line - 使用 Ansible 显示远程命令的输出

转载 作者:行者123 更新时间:2023-12-03 05:39:14 25 4
gpt4 key购买 nike

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

- 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 公钥”任务已完成,但不显示输出。

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

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

最佳答案

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

只需将 Ansible 的(通常不显示的)JSON 输出注册到变量,然后显示每个变量的 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="Please add the SSH public key above to your GitHub account"
register: pause
- debug: var=pause.stdout_lines

关于command-line - 使用 Ansible 显示远程命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18789545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com