notify和handlers
此前曾提到过,Ansible绝大多数的模块都具备幂等性,它能保证多次执行不会改变结果,这使得Ansible执行任务时更为安全。
Ansible的模块如何去保证幂等性呢?以shell模块为例∶
shell:
cmd: echo haha >/tmp/only_once.txt
creates: /tmp/only_once.txt
这里使用了shel模块中的creates参数,它表示如果其指定的文件/tmp/only_once...
/
599 次浏览/
系统运维
除条件判断外, 另一种分支控制结构是循环结构。Ansible提供了很多种循环结构,一般都命名为with_Xxx,例如with_items、with_list、with_file等,使用最多的是with_items。
循环:迭代,需要重复执行的任务
对迭代项的引用,固定变量名为"item”,使用with_item属性给定要迭代的元素; 这个是以任务为中心,围绕每个任务来跑主机,如果中间某个任务中断,那么所有主机以后的任务就无法安装。
元素:...
/
483 次浏览/
系统运维
Ansible template模块
当安装完redis以后,redis默认配置的监听地址为"127.0.0.1",这样是安全的,但是,如果我需要让redis监听在非"127.0.0.1"的IP地址上,以便让其他主机也能够使用本机上的redis服务,那么我就需要修改默认的配置,没错,修改redis配置文件中的bind设置,即可将redis绑定在指定的IP上,假设,现在需要一次性在10台主机上安装redis,并且让安装后的redis都监听在redis所在主机的非"127....
/
579 次浏览/
系统运维
在本博客中,ansible是一个系列文章,我们会尽量以通俗易懂的方式总结ansible的相关知识点。
Ansible常用模块-ping模块
Ansible最基础的模块为ping模块,这个是测试远程的SSH连接是否就绪的常用模块。它并不像Linux命令一样简单的ping一下远程节点,而是先检查能否提供SSH登入远程节点,再检查Python版本是否满足要求,如果都满足返回pong,表示成功。
ping无需任何的参数,因为ping是测试节点的可用性,所以在...
/
470 次浏览/
系统运维
如果你的playbook包含了许多许多的功能,即包含了多个play,那么你需要整合所有任务到单个playbook中
这里将前面所有playbook集合到单个playbook文件中去,这样就可以一次性执行所有任务。比如下面所示,这里只是举个例子,没有将全部展示出来。
内容很长,可能你也感受到了,可读性很差,维护也很不方便。
更友好的一种组织方式是将各个任务分类,各自存放在不同的playbook文件中(就像未整合那样),然后使用一个入口playbook文件引...
/
565 次浏览/
系统运维
前文中,我们已经介绍了怎样使用模块,而且我们知道,ansible有很多模块,每个模块都有自己的功能,"模块"涉及到的方向比较多,所以对于个人来说,并没有必要了解所有的模块,我们只需要根据实际的业务场景了解相应的模块即可,而且ansible比较贴心,ansible根据模块的功能对这些模块进行了大致的分类,比如,如果某些模块都是操作文件的,就把它们分类到文件类模块中,如果某些模块都是操作数据库的,就把他们分类到数据库类模块中,那么,ansible把模块分为了哪些类呢?你可以参...
/
532 次浏览/
系统运维
前文中,我们已经介绍了怎样使用模块,而且我们知道,ansible有很多模块,每个模块都有自己的功能,"模块"涉及到的方向比较多,所以对于个人来说,并没有必要了解所有的模块,我们只需要根据实际的业务场景了解相应的模块即可,而且ansible比较贴心,ansible根据模块的功能对这些模块进行了大致的分类,比如,如果某些模块都是操作文件的,就把它们分类到文件类模块中,如果某些模块都是操作数据库的,就把他们分类到数据库类模块中,那么,ansible把模块分为了哪些类呢?你可以参...
/
500 次浏览/
系统运维
前文中已经总结了一些文件操作类的模块,如果你需要了解它们,可以查看我之前博客。
这篇文章我们继续来了解一些文件操作类模块。
find模块
find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样。
此处我们介绍一些find模块的常用参数,你可以先对这些参数有一个大概了解,然后再看小示例。
paths参数 :必须参数,指定在哪个目录中查找文件,可以指定多个路径,路径间用逗号隔开,此参数有别名,使用别名path或...
/
581 次浏览/
系统运维
在本博客中,ansible是一个系列文章,我们会尽量以通俗易懂的方式总结ansible的相关知识点。ansible系列博文直达链接:ansible轻松入门系列"ansible系列"中的每篇文章都建立在前文的基础之上,所以,请按照顺序阅读这些文章,否则有可能在阅读中遇到障碍。
前文中,我们介绍了一些常用的文件类操作的模块,这篇文章中我们会介绍一些常用的命令类操作的模块。
command模块
command模块可以帮助我们在远程主机上执行...
/
607 次浏览/
系统运维
前文中,我们介绍了一些常用的文件类模块和命令类模块,这篇文章中我们会介绍一些常用的系统类操作模块。
cron模块
在了解cron模块的参数之前,先写出一些计划任务的示例,示例如下
示例1 5 1 * * * echo test
示例2 1 1 */3 * * echo test
示例3 @reboot echo test
示例4&nbs...
/
556 次浏览/
系统运维