yum_repository模块
yum_repository模块⽤于配置yum仓库。 https://docs.ansible.com/ansible/latest/modules/yum_repository_m odule.html
增加⼀个/etc/yum.repos.d/local.repo配置⽂件
删除/etc/yum.repos.d/local.repo配置⽂件
yum模块(重点)
yum模块⽤于使⽤yum命令来实现软件包的安装与卸载。 https://docs.ansible.com/ansible/latest/modules/yum_module.html #yum-module
使⽤yum安装⼀个软件(前提:group1的机器上的yum配置都已经 OK)
使⽤yum安装httpd,httpd-devel软件,state=latest表示安装最新版本
使⽤yum卸载httpd,httpd-devel软件
service模块(重点)
service模块⽤于控制服务的启动,关闭,开机⾃启动等。 https://docs.ansible.com/ansible/latest/modules/service_module.ht ml#service-module
启动vsftpd服务,并设为开机⾃动启动
关闭vsftpd服务,并设为开机不⾃动启动
script模块
script模块⽤于在远程机器上执⾏本地脚本。 https://docs.ansible.com/ansible/latest/modules/script_module.ht ml#script-module
扩展: 使⽤shell脚本实现在group1的被管理机⾥的mariadb⾥创建⼀ 个abc库
command与shell模块
两个模块都是⽤于执⾏linux命令的,这对于命令熟悉的⼯程师来说, ⽤起来⾮常high。
shell模块与command模块差不多(command模块不能执⾏⼀些类似 $HOME,>,等符号,但shell可以)
https://docs.ansible.com/ansible/latest/modules/command_modul e.html
注意: shell模块并不是百分之百任何命令都可以,⽐如vim或ll别名就不 可以。不建议⼤家去记忆哪些命令不可以,⼤家只要养成任何在⽣产 环境⾥的命令都要先在测试环境⾥测试⼀下的习惯就好。
playbook
playbook(剧本): 是ansible⽤于配置,部署,和管理被控节点的剧本。⽤ 于ansible操作的编排。 参考:https://docs.ansible.com/ansible/latest/user_guide/playbooks _intro.html 使⽤的格式为yaml格式(saltstack,elk,docker,dockercompose,kubernetes等也都会⽤到yaml格式)
YMAL格式
以.yaml或.yml结尾
⽂件的第⼀⾏以 "---"开始,表明YMAL⽂件的开始(可选的)
以#号开头为注释 列表中的所有成员都开始于相同的缩进级别, 并且使⽤⼀个 "- " 作为开头(⼀个横杠和⼀个空格)
⼀个字典是由⼀个简单的 键: 值 的形式组成(这个冒号后⾯必须 是⼀个空格)
playbook实例
先直接来看⼀个实例
第1步: 创建⼀个存放playbook的⽬录(路径⾃定义)
第2步: 准备httpd配置⽂件,并修改成你想要的配置
第3步: 写⼀个playbook⽂件(后缀为.yml或.yaml)
第4步:
执⾏写好的palybook 会显示出执⾏的过程,并且执⾏的每⼀步都有ok,changed,failed 等标识 执⾏如果有错误(failed)会回滚,解决问题后,直接再执⾏这条命 令即可,并会把failed改为changed(幂等性)
Playbook常⻅语法
hosts: ⽤于指定要执⾏任务的主机,其可以是⼀个或多个由冒号分 隔主机组.
remote_user: ⽤于指定远程主机上的执⾏任务的⽤户.
tasks: 任务列表, 按顺序执⾏任务.
如果⼀个host执⾏task失败, 整个tasks都会回滚, 修正playbook 中的错误, 然后重新执⾏即可.
handlers: 类似task,但需要使⽤notify通知调⽤。
不管有多少个通知者进⾏了notify,等到play中的所有task执⾏完 成之后,handlers也只会被执⾏⼀次.
handlers最佳的应⽤场景是⽤来重启服务,或者触发系统重启操 作.除此以外很少⽤到了.
variables: 变量 定义变量可以被多次⽅便调⽤