AWX-提供响应文件



我有一个项目使用playbook执行shell命令,如下所示:

/tmp/fileforinst.bin -varfile response.varfile

当我执行shell命令时,我为安装目的提供response.varfile,其中包括一些条目,如目标安装目录、应用程序端口等。response.varfile格式如下:

app.Home=/app/home
httpPort=8080

目前我得到以下错误

"在Ansible控制器"上找不到或无法访问"runner/project/response.varfile";

我得到错误的原因很清楚。所需的response.varfile文件存在于与yml文件(剧本(相同分支的GIT服务器中

知道在执行shell命令时如何提供response.varfile文件吗?

谢谢

所需的response.varfile文件存在于Git服务器中,与YML文件(剧本(位于同一分支上

假设你的角色在Git存储库中有一个类似的结构

tree APP/
├── files
├── main.yml
├── README.md
├── tasks
│   └── install_app.yml
└── templates
└── response.file.j2

将项目从Git导入到您的Ansible AWX/Tower中,然后,该文件仅通过templatesfiles路径可用。

- name: Download installer from binary repository
get_url:
url: "https://{{ REPOSITORY_URL }}/Packages/{{ INSTALLER_FILE }}"
url_username: "{{ API_USER }}"
url_password: "{{ API_KEY }}"
dest: "/opt/app"
owner: "{{ APP_USER }}"
group: "{{ APP_GROUP }}"
mode: 0750
- name: Copy response file for unattended installation
template:
src: "response.file.j2"
dest: "/opt/app/response.file"
owner: "{{ APP_USER }}"
group: "{{ APP_GROUP }}"
mode: 0750
- name: Install App
shell: 
cmd: "/opt/app/{{ INSTALLER_FILE }} -q -varfile /opt/app/response.file"
register: install_result
- name: Show install result
debug: 
msg: "{{ install_result.stdout_lines }}"

这几乎是我在生产环境中用来安装和更新";应用程序";。换句话说,您必须将文件从Ansible控制节点复制到将要进行安装的远程节点。

进一步阅读

  • 将文件模板输出到目标主机
  • 目录布局

最新更新