<强> 1,ansible剧本强>
剧本翻译过来就是“剧”本,那剧本组成如下
:定义的是主机的角色
任务:定义的是具体执行的任务
剧本:由一个或多个玩组成,一个玩可以包含多个任务任务
简单理解为:使用不同的模块完成一件事情
<强> 2,ansible剧本的优势强>
1,功能比ansible命令更强大
2,能控制先后执行顺序和依赖关系
3,语法更加直观
<强> 3,ansible使用yaml语法强>
1)以缩进代表不同层级之间的关系
2)对缩进有严格要求
3)——横杠,横杠后面有空格代表列表
4):冒号,冒号后有空格,表示赋值
<强> 4,ansible剧本小实例模板强>
<代码> ansible nfs - m集团——“name=www gid=666=现在” ansible nfs - m用户——“name=www uid=666组=666壳=/sbin/nologin create_home=不” ansible nfs - m百胜——“name=nfs-utils” ansible nfs - m文件——“路径=/数据状态=目录” ansible nfs - m副本——“src=https://www.yisu.com/zixun/exports dest=/etc/出口备份=yes” ansible nfs - m服务——“name=rpcbind状态=开始启用=yes” ansible nfs - m服务——“name==开始启用nfs状态=yes” ansible nfs - m壳——“showmount - e”代码>
小试牛刀:
<代码> 小试牛刀: 主持人:nfs主机组 任务:任务 ——名称:创建组取名字任意,要方便记 组:引用的模块 名称:www参数1 gid: 666参数2 目前状态:参数3 ——名字:创建用户 用户: 名称:www uid: 666 组:www 壳牌:/sbin/nologin create_home:不 ——名称:安装nfs柔软 百胜: 名称:nfs-utils ——名称:mkdir目录 文件: 路径:/数据 状态:目录 -名称:复制文件 复制: src:/root/exports 桌子:/etc/exports 备份:是的 ——名称:rpcbind开始 服务: 名称:rpcbind 状态:开始 enbaled:是的 ——名称:启动nfs 服务: 名称:nfs 状态:开始 enbaled:是的 ——名称:显示山 壳牌:showmount - e 代码>
<强> 5,ansible执行方式强>
1) ansible-playbook——语法检查xxx。yaml语法检查
2) ansible-playbook - c xxx。yaml模拟执行
3) ansible-playbook xxx。yaml执行剧本
<强> 6,anisble剧本高级特性循环强>
使用场景:在写ansible剧本中我们经常会写到重复性命令,比如创建多个用户,多个组,多个目录,安装多个软件
一个个写就太麻烦了,也体现不出ansible剧本的优越性,所以我们就要用到它的一些高级特性
<代码> -主机:nfs 任务: ——名称:创建目录 文件: 路径:“{{项}}” 目前状态: 循环: ——/数据 ——/dat2 ——名称:添加组 组: 名称:“{{item.name}}” gid:“{{项目。gid}}” 目前状态: 循环: ——{名称:group1 gid: 1111} ——{名称:group2 gid: 2222} - name:添加用户 用户: 名称:“{{item.name}}” uid:“{{项目。uid}}” 组:“{{项目。集团}}” 壳牌:/sbin/nologin create_home:不 循环: ——{名称:user1, uid: 7777组:group1} ——{名称:user2, uid: 8888组:group2} 代码>
六,ansible剧本高级特性——变量
使用情景:
1。自定义某个名称,在任务中会多次引用
2。从主机收集的系统信息中提取某个变量并引用,例如网卡信息
<代码> -主机:nfs var: 路径:/opt/数据 任务: ——名称:创建目录 文件: 路径:“{{path}}” 目前状态: 代码>
也可以写在/etc/ansible/主机
<代码> - hsots: nfs 任务: ——名称:显示ip 壳牌:“{{ansible_facts.eth2.ipv4回响。地址}}祝辞/root/ip_eth2.txt” 壳牌:“{{ansible_facts.eth0.ipv4回响。地址}}祝辞/root/ip_eth0.txt " 代码>
(ansible内置变量提取ip地址的变量)
六,ansible剧本高级特性——注册变量
使用情景:将配置文件的状态注册成一个变量,方便其他任务引用例:
<代码> -主机:nfs 任务: ——名称:显示ip 壳牌:“{{ansible_facts.eth2.ipv4回响。地址}}” 注册:eth2(登记是固定用法,表示注册一个叫eth2的变量) ——名称:eth2回响 调试: 味精:“{{eth2。stdout}}”(固定用法,加.stdout表示显示带stdout的行因为这行刚好有ip)18日,Anisble剧本