《OpenShift / RHEL / DevSecOps / Ansible 汇总目录》
文章目录
- 从外部向“清单”批量导入主机
- 从 VMware vCenter 导入主机清单
- 从外部文件导入主机清单
- 使用“智能清单”
Ansible 的 Playbook 执行目标是 “清单” 中的主机和分组。在 AAP 控制台中可以手工创建 “主机” 并通过 “清单” 关联主机和分组,也可从外部环境中批量导入“主机” 和 “清单” 信息。
标准 “清单” 中包含哪些主机是静态的,因此必须手动向 “清单” 中添加或删除 “主机”,执行 Playbook 的目标 “清单” 才会有变化。而 AAP 的 “智能清单” 相当于 “主机视图”,可以通过更改 “智能清单” 的过滤条件来动态变更它包含的 “主机”。
从外部向“清单”批量导入主机
AAP 支持从 VMware vCenter、OpenStack、红帽虚拟化、AWS、AZure、Google Cloud、红帽卫星、外部文件等源头批量导入主机清单。
从 VMware vCenter 导入主机清单
- 先创建一个 VMware vCenter 类型的 “凭证”。
- 创建一个新的 “清单”。
- 在新建的 “清单” 中创建一个新的 “源”。
- 在 “源” 的编辑页面中按照下图选出 “源” 和 “凭证”,另外将使用在发现主机中包含的 processor_vcpus 变量作为主机选择条件,选出 processor_vcpus = 2 的主机。
- 保存 “源” 后在详情页面中点击 “同步”,此时 AAP 会按照 “源” 的目标和过滤条件将符合条件的主机导入到 “清单” 中。
- 再次查看刚刚创建 “清单” 中的 “主机” 页面,可以看到被导入的主机清单列表。
从外部文件导入主机清单
- 在一个 Git 的 Repository 中创建内容如下的 inventory_list 文件,它定义了主机和分组、以及变量。
{
"dyngroup":{
"hosts":[
"cloud1.cloud.example.com",
"cloud2.cloud.example.com",
"cloud3.cloud.example.com",
"cloud4.cloud.example.com"
],
"vars":{
"var1": true
}
},
"_meta":{
"hostvars":{
"cloud1.cloud.example.com":{
"type":"lb"
},
"cloud2.cloud.example.com":{
"type":"web"
},
"cloud3.cloud.example.com":{
"type":"web"
},
"cloud4.cloud.example.com":{
"type":"database"
}
}
}
}
- 在 Git 的 Repository 中相同位置创建内容如下的 inventory-script 文件,注意需要替换curl 命令使用的 inventory_list 文件访问地址。
#!/bin/bash
if [ "$1" == "--list" ] ; then
curl -sS https://gitee.com/dawnskyliu/playbooks_adv_summit2021/raw/master/inventory/inventory_list
elif [ "$1" == "--host" ]; then
echo '{"_meta": {"hostvars": {}}}'
else
echo "{ }"
fi
- 在 AAP 控制台上创建一个对应前面 Git Repository 的 “项目”。
- 创建一个新的 “清单”,然后在其中创建一个新 “源”。然后按照下图将 “源”设为“源于项目”,将 “项目” 和 “清单文件” 设为前面创建的资源。
- 在新建的 “源” 详情页面中点击 “同步”,AAP 将启动任务运行 Git Repository 中的 inventory-script 文件将 inventory_list 文件中的主机导入到 AAP。
- 完成后可在 “清单” 中查看从外部文件导入的 “主机”。
使用“智能清单”
可以将 “智能清单” 看成是 “主机” 的视图,因此创建新的 “智能清单” 前需要 AAP 中至少先有一个 “主机”。
-
在 AAP 的清单中创建一个 “智能清单”。
-
进入 “智能主机过滤器” 的 “放大镜” 图标,此时在对话框中应该显示当前 AAP 的所有主机。
-
在弹出对话框中将 “名称” 改为 “高级”,然后按照下图查找 name,查找类型为 regex ,查找内容为 cloud[2-4].cloud.example.com,最后点击 “放大镜” 图标。
-
此时对话框可之显示过滤后的主机,最后点击 “选择” 按钮。
-
查看新创建的 “智能清单” 对应的 “主机”,即为上一步过滤出的主机。