18日,Anisble剧本

  

<强> 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/主机
 18日Anisble剧本

  
 <代码> - 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剧本