[RHCE学习笔记] ansible使用jinja2 生成hosts主机文件

Posted 老王运维博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[RHCE学习笔记] ansible使用jinja2 生成hosts主机文件相关的知识,希望对你有一定的参考价值。

ansible使用jinja2 生成hosts主机文件

老王运维博客 - ansible使用jinja2 生成hosts主机文件

​ 创建主机文件利用jinjia2魔法变量进行编写 收集所有主机事实变量,一般包含IP地址和主机名,FQDN完全限定域名。 jinja2模板中使用循环来获取使用主机的三个信息:address、fqdn、hostname。针对模板中的参数信息,可以使用setup模块先生成一个主机的使用信息到文件中,然后less打开生成的文本文件,搜索条目即可得到需要的参数信息。

编写yaml文件 用于ansible template模块调用

---
        - name: test yml
          hosts: all
          tasks:
                  - name : template
                    template:
                            src: test.j2
                            dest: /tmp/myhosts
                    when: inventory_hostname in groups.dev

创建jinja2模板

% for host in groups[all] %
 hostvars[host][ansible_facts][default_ipv4][address]    hostvars[host][ansible_facts][fqdn]   hostvars[host][ansible_facts][hostname] 
% endfor %

注意: yaml文件中 hosts 要选择所有主机 否则无法收集到所有被管理节点的事实变量,生成到某一个主机在template 加when 判断即可

以上是关于[RHCE学习笔记] ansible使用jinja2 生成hosts主机文件的主要内容,如果未能解决你的问题,请参考以下文章

关于Linux中自动化配置服务和网络接口的一些笔记

关于Linux中自动化配置服务和网络接口的一些笔记

RHCE-B13. 创建Ansible密码库,使用文件内密码加密yml

RHCE-B5. 使用Ansible Galaxy 安装角色

note-ansible 视频笔记

RHCE-B7. 从 Ansible Galaxy 使用角色创建web负载均衡