Ansile思科DevNet

Ansible生成主机hosts文件、cron任务与硬件信息

2021-10-28  本文已影响0人  刘小白DOER

    最近一直在练习ansible。以前觉得ansible繁琐,yml文件不熟悉,很难编写。但是在不断的练习中,笔者逐渐发觉Ansible这个框架真是省心省力。在多次实践中,各个模块其实可以直接ansible-doc查看模块的example,直接复制修改后就可以直接拿来使用。重难点其实还是playbook的逻辑控制上。

    在以前笔者觉得自己编写脚本(ssh后面直接跟命令)来完成服务器群的控制更加方便、简洁。但是熟悉ansible后发现,对于逻辑控制复杂的任务,ansible框架更加方便,特别是在错误判断上,真正的完成批量任务。

    在众多的实践练习中,笔者觉得生成主机hosts文件与cron任务比较常用,先分享如下。

一、生成主机hosts文件

    主机hosts文件一般包含IP地址和主机名,有时可以添加FQDN完全限定域名。

    jinja2模板中使用循环来获取使用主机的三个信息:address、fqdn、hostname。针对模板中的参数信息,可以使用setup模块先生成一个主机的使用信息到文件中,然后less打开生成的文本文件,搜索条目即可得到需要的参数信息。模板内容如下:

    下面的playbook使用template模板来生成主机文件,并将文件放置于dev组的主机 /etc/myhosts中。如果需要所有主机都需要生成,那么删除最后的when即可。

二、配置cron任务

    配置 cron任务就简单了,ansible-doc cron查看模块的使用方法。

    下面是配置一个每两分钟的定时任务来发送logger日志 。配置完成后可以使用ansible test -a 'crontab -l -u bob' 来验证 ,或者查看日志记录 ansible test -a 'grep EX200 /var/log/messages' 。

三、生成硬件信息

    ansible-doc lineinfile查看模块的使用方法,模块确保”某一行文本”存在于指定的文件中,或者确保从文件中删除指定的”文本”,还可以根据正则表达式,替换”某一行文本”。

    下面是根据文本模板信息来更新硬件报告。

    

上一篇下一篇

猜你喜欢

热点阅读