ansible - Ansible AWX 工作流程
问题描述
我是 ansible 和 AWX 的新手。我的项目取得了良好的进展,但我被一个部分卡住了,希望你们能提供帮助。
我有一个工作流模板如下
- 部署虚拟机
- 获取已部署 VM 的 IP 并创建临时主机配置
- 更改部署的机器主机名
我遇到困难的地方是,当我在下一个模板启动时创建主机名时,主机名组丢失了。我认为这是因为某种运行空间。如何移动这些信息?我需要这个,因为稍后我想进入更复杂的流程。
到目前为止我所拥有的:
1.
- name: Deploy VM from Template
hosts: xenservers
tasks:
- name: Deploy VM
shell: xe vm-install new-name-label="{{ vm_name }}" template="{{ vm_template }}"
- name: Start VM
shell: xe vm-start vm="{{ vm_name }}"
---
- name: Get VM IP
hosts: xenservers
remote_user: root
tasks:
- name: Get IP
shell: xe vm-list name-label="{{ vm_name }}" params=networks | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -1
register: vm_ip
until: vm_ip.stdout != ""
retries: 15
delay: 5
在这里,我设置了主机,这在模板本地工作,但是当它继续移动时失败。我在一个任务和一个游戏中试过这个。
- name: Add host to group
add_host:
name: "{{ vm_ip.stdout }}"
groups: deploy_vm
- hosts: deploy_vm
- name: Set hosts
hosts: deployed_vm
tasks:
- name: Set a hostname
hostname:
name: "{{ vm_name }}"
when: ansible_distribution == 'Rocky Linux'
谢谢
解决方案
推荐阅读
- selenium - 将数据写入 Excel 文件
- node.js - 如何从 NodeJS Lambda 函数中的 axios.get 等异步函数获得返回?
- reactjs - React Navigations 5:超过最大更新深度
- angular - 从其他页面路由时刷新子组件中的数据
- cypress - 运行命令 npm install cypress --save-dev 时出错
- reactjs - 每当我按下具有导航功能的按钮时,我的 React 本机应用程序都会返回启动画面
- angular - 如果 'mat-option' 是 Angular 组件,则验证
- java - 如何覆盖 org.springframework.hateoas.Resources 将内容序列化为 List 以序列化名称
- swift - 如何最大化 Cloud Firestore 中的现有数字字段
- c# - AWS Lambda 和 ASP.NET Core 日志记录