一佳互联

展开菜单

Ansible Ansible的灵魂∶playbook

Ansible Ansible的灵魂∶playbook
Ansible playbook ansible命令每次只能执行一个任务,这种运行方式称为Ad-hoc(点对点模式),不考虑Ansible特性的话,这功能比ssh远程执行命令还要弱。 所以,Ansible靠ansible命令是撑不起自动化管理这把大伞的,Ansible真正强大的是playbook,它才是Ansible撬动自动化管理的结实杠杆。   playbook、play和task的关系 在前面介绍inventory的时候,将它类比为演员表,在这...

Ansible playbook的语法∶YAML

Ansible playbook的语法∶YAML
playbook的语法∶YAML ansible的playbook采用yaml语法,它以非常简洁的方式实现了json格式的事件插述。y aml之于json就像markdown之于html一样,极度简化了json的书写。 YAML文件后缀通常为.yaml或.yml。 YAML在不少工具里都使用,学习它是"一次学习、终生受益"的,所以很有必要把yaml 的语法格式做个梳理,系统性地去学—学。 YAML的基本语法规则如下∶ (1)使用缩进表示层级关系 (2)缩进时不...

Ansible playbook 处理器(notify与handlers)

Ansible playbook 处理器(notify与handlers)
notify和handlers 此前曾提到过,Ansible绝大多数的模块都具备幂等性,它能保证多次执行不会改变结果,这使得Ansible执行任务时更为安全。 Ansible的模块如何去保证幂等性呢?以shell模块为例∶ shell: cmd: echo haha >/tmp/only_once.txt creates: /tmp/only_once.txt 这里使用了shel模块中的creates参数,它表示如果其指定的文件/tmp/only_once...

Ansible 任务控制(循环loop、条件when)

Ansible 任务控制(循环loop、条件when)
除条件判断外, 另一种分支控制结构是循环结构。Ansible提供了很多种循环结构,一般都命名为with_Xxx,例如with_items、with_list、with_file等,使用最多的是with_items。   循环:迭代,需要重复执行的任务 对迭代项的引用,固定变量名为"item”,使用with_item属性给定要迭代的元素; 这个是以任务为中心,围绕每个任务来跑主机,如果中间某个任务中断,那么所有主机以后的任务就无法安装。 元素:...

Ansible template|cpoy模块

Ansible template|cpoy模块
Ansible template模块 当安装完redis以后,redis默认配置的监听地址为"127.0.0.1",这样是安全的,但是,如果我需要让redis监听在非"127.0.0.1"的IP地址上,以便让其他主机也能够使用本机上的redis服务,那么我就需要修改默认的配置,没错,修改redis配置文件中的bind设置,即可将redis绑定在指定的IP上,假设,现在需要一次性在10台主机上安装redis,并且让安装后的redis都监听在redis所在主机的非"127....

Ansible 常用模块(一)

Ansible 常用模块(一)
在本博客中,ansible是一个系列文章,我们会尽量以通俗易懂的方式总结ansible的相关知识点。   Ansible常用模块-ping模块 Ansible最基础的模块为ping模块,这个是测试远程的SSH连接是否就绪的常用模块。它并不像Linux命令一样简单的ping一下远程节点,而是先检查能否提供SSH登入远程节点,再检查Python版本是否满足要求,如果都满足返回pong,表示成功。 ping无需任何的参数,因为ping是测试节点的可用性,所以在...

Ansible 导入剧本(import_playbook)和导入任务(import_tasks)

Ansible 导入剧本(import_playbook)和导入任务(import_tasks)
如果你的playbook包含了许多许多的功能,即包含了多个play,那么你需要整合所有任务到单个playbook中 这里将前面所有playbook集合到单个playbook文件中去,这样就可以一次性执行所有任务。比如下面所示,这里只是举个例子,没有将全部展示出来。  内容很长,可能你也感受到了,可读性很差,维护也很不方便。 更友好的一种组织方式是将各个任务分类,各自存放在不同的playbook文件中(就像未整合那样),然后使用一个入口playbook文件引...

Ansible 常用模块之文件内容修改 blockinfile|lineinfile

Ansible 常用模块之文件内容修改 blockinfile|lineinfile
前文中,我们已经介绍了怎样使用模块,而且我们知道,ansible有很多模块,每个模块都有自己的功能,"模块"涉及到的方向比较多,所以对于个人来说,并没有必要了解所有的模块,我们只需要根据实际的业务场景了解相应的模块即可,而且ansible比较贴心,ansible根据模块的功能对这些模块进行了大致的分类,比如,如果某些模块都是操作文件的,就把它们分类到文件类模块中,如果某些模块都是操作数据库的,就把他们分类到数据库类模块中,那么,ansible把模块分为了哪些类呢?你可以参...

Ansible 常用模块之文件操作copy|file文件拷贝与创建

Ansible 常用模块之文件操作copy|file文件拷贝与创建
前文中,我们已经介绍了怎样使用模块,而且我们知道,ansible有很多模块,每个模块都有自己的功能,"模块"涉及到的方向比较多,所以对于个人来说,并没有必要了解所有的模块,我们只需要根据实际的业务场景了解相应的模块即可,而且ansible比较贴心,ansible根据模块的功能对这些模块进行了大致的分类,比如,如果某些模块都是操作文件的,就把它们分类到文件类模块中,如果某些模块都是操作数据库的,就把他们分类到数据库类模块中,那么,ansible把模块分为了哪些类呢?你可以参...

Ansible 常用模块之文件操作查找与内容替换 find|replace

Ansible 常用模块之文件操作查找与内容替换 find|replace
前文中已经总结了一些文件操作类的模块,如果你需要了解它们,可以查看我之前博客。 这篇文章我们继续来了解一些文件操作类模块。   find模块 find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样。 此处我们介绍一些find模块的常用参数,你可以先对这些参数有一个大概了解,然后再看小示例。 paths参数 :必须参数,指定在哪个目录中查找文件,可以指定多个路径,路径间用逗号隔开,此参数有别名,使用别名path或...