使用ansible,我正在尝试将应用程序工件从远程服务器“artifacts_host”复制到目标计算机,即我的清单中的主机。我试图运行的剧本是这样的:
- name: rsync WAR artifact from artifacts host
synchronize: >
src={{ artifacts_path }}/{{ artifact_filename }}.war
dest={{ artifact_installation_dir }}
delegate_to: "{{ artifacts_host }}"
我非常接近使用ansible-vault使用artifact_host的公钥加密“secrets.yml”变量文件,然后将其安装在目标机器的auth文件上,如下所示:
- name: install artifacts_host's public key to auth file
authorized_key: >
user={{ ansible_ssh_user }}
key='{{ artifacts_host_public_key }}'
sudo: yes
但问题是我的artifacts_host无法解析Ansible传递给它的FQDN中的IP地址。如果我能够“通知”要使用的IP的artifacts_host(fqdn 应该解析为什么)那么我会没事的。我也可以在目标机器上启动任务以从artifacts_host中取出,但我找不到完成此功能的幂等方法,也无法弄清楚如何向目标机器提供登录名/密码或ssh使用的关键。 我是否只需要模拟出一个脚本来推送我的目标???
答案 0 :(得分:0)
对于任何遇到此问题并且有相同问题的人,我都没有弄明白,我只是决定在目标机器中安装私钥' / etc / ssh目录并将其chmod到0600.我认为它基本上是安全的,因为没有瞬态(仅在内存中)密钥/密码和幂等性。