Ansible生成主机hosts文件、cron任务与硬件信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible生成主机hosts文件、cron任务与硬件信息相关的知识,希望对你有一定的参考价值。
参考技术A 最近一直在练习ansible。以前觉得ansible繁琐,yml文件不熟悉,很难编写。但是在不断的练习中,笔者逐渐发觉Ansible这个框架真是省心省力。在多次实践中,各个模块其实可以直接ansible-doc查看模块的example,直接复制修改后就可以直接拿来使用。重难点其实还是playbook的逻辑控制上。在以前笔者觉得自己编写脚本(ssh后面直接跟命令)来完成服务器群的控制更加方便、简洁。但是熟悉ansible后发现,对于逻辑控制复杂的任务,ansible框架更加方便,特别是在错误判断上,真正的完成批量任务。
在众多的实践练习中,笔者觉得生成主机hosts文件与cron任务比较常用,先分享如下。
主机hosts文件一般包含IP地址和主机名,有时可以添加FQDN完全限定域名。
jinja2模板中使用循环来获取使用主机的三个信息:address、fqdn、hostname。针对模板中的参数信息,可以使用setup模块先生成一个主机的使用信息到文件中,然后less打开生成的文本文件,搜索条目即可得到需要的参数信息。模板内容如下:
下面的playbook使用template模板来生成主机文件,并将文件放置于dev组的主机 /etc/myhosts中。如果需要所有主机都需要生成,那么删除最后的when即可。
配置 cron任务就简单了,ansible-doc cron查看模块的使用方法。
下面是配置一个每两分钟的定时任务来发送logger日志 。配置完成后可以使用ansible test -a 'crontab -l -u bob' 来验证 ,或者查看日志记录 ansible test -a 'grep EX200 /var/log/messages' 。
ansible-doc lineinfile查看模块的使用方法,模块确保”某一行文本”存在于指定的文件中,或者确保从文件中删除指定的”文本”,还可以根据正则表达式,替换”某一行文本”。
下面是根据文本模板信息来更新硬件报告。
以上是关于Ansible生成主机hosts文件、cron任务与硬件信息的主要内容,如果未能解决你的问题,请参考以下文章