ansible自动化运维工具----ansible playbook的使用(5)

一、playbook简介

1、playbook与ad-hoc相比,是一种完全不同的运用。
2、playbook是一种简单的配置管理系统与多机器部署系统的基础,且非常适合于复杂应用的部署。
3、playbook中可以编排有序的执行过程,甚至于做到在多组机器间,来回有序的执行特别指定的步骤,并且可以同步或者异步的发起任务。
4、使用playbook可以方便的重用这些代码,可以移植到不同的机器上面。
5、ansible可以使用普通命令的方式管理主机,如果服务器数量多的话,配置信息比较多,一个一个的敲出来就有点繁琐了,还容易出错,这时可以使用ansible playbook 编写剧本,从而实现更加简便的方式实现任务处理的自动化与流程化。
6、playbook其实就像shell脚本一样,脚本是由多个命令组成,而playbook由多个任务,多个模块组成一个完整的流程控制集合。

二、playbook的语法

1、Playbook主要有以下四部分构成:

target:定义将要执行playbook的远程主机组
variable:定义playbook运行时需要使用的变量
task :定义将要在远程主机上执行的任务列表
handler:定义task执行完成以后需要调用的任务

2、playbook由YMAL语言编写,以下为playbook常用的YMAL格式:

  • 文件的第一行应该以“—”三个连字符开始,表明YMAL文件的开始。
  • 在同一行中,#之后的内容表示注释,类似于shell,python和ruby。
  • YMAL中列表元素以“-”开头然后紧跟着一个空格,同一个列表中的元素应该保持相同的缩进。

3、一个字典是由一个简单的键:值的形式组成(这个冒号后面必须是一个空格):

下面是一个很基本的剧本(Playbook又称为剧本)

---
- hosts: web
  remote_user: root
  tasks:
    - name: install httpd
      yum: name=httpd state=installed
    - name: add index file
      copy: src=/root/index.html dest=/var/www/html/index.html
    - name: start service
      service: name=httpd state=started enabled=yes

解释:

 ---  #三个杠表示剧本文件的开头
- hosts: web #执行任务的主机列表,这里是给web主机组
  remote_user: root  #远程执行用户
  tasks:  #任务的开始
    - name: install httpd  #每一个tasks必须有一个名称name,可以理解为一个标记,执行时可以看到
      yum: name=httpd state=installed  #使用yum模块执行安装http的功能
    - name: add index file
      copy: src=/root/index.html dest=/var/www/html/index.html #使用copy模块复制主页文件
    - name: start service
      service: name=httpd state=started enabled=yes  #使用service模块开启服务

其中要注意:
同级的缩进要对齐,hosts,remote_user,tasks 就是同级
每一个模块都使用key=value格式如remote_user: root 冒号后面有空格

remote_user: root 对应 key: value 如果不明白key=value 就记住模块后面等于值,写的时候冒号加空格

三、 剧本的使用

ansible-playbook install.yml
ansible-playbook(命令) install.yml(剧本文件) 一般直接命令加文件也可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值