ansible上手之认识Playbook
Playbook介绍
playbook,剧本,使用时按照剧本内容执行操作,将模块写在playbook里,执行固定操作即可,不用直接在命令行执行繁琐复杂的命令,假如我要安装Nginx并配置他,我只需将怎么配置的内容直接写在playbook里,就可以按照我的步骤一步步执行。
使用Ansible时,绝大部分时间将花费在编写playbook上。playbook是一个ansible的术语,它指的是用于配置管理的脚本。
Playbook是由一个或者多个“play”组成的列表。play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来讲,所谓的task无非是调用ansible的一个模块。将多个play组织在一个playbook中,即可以让他们联合起来按照事先编排的机制完成某一任务。
比如说安装一个apache,至少得分三步:安装apache、修改配置文件、启动服务,我们可以将这些写在一个playbook中,只要我们一运行这个playbook,整个任务就完成了,而不需要我们一步步在命令行执行了。
先拿出来理解下
我主管有病;
他让我我现在在客户端安装httpd;想复制服务端/tmp/file文件到客户端/tmp/,又想重启客户端的httpd,还想在客户端创建文件/tmp/likes。这么多操作一点点在命令行输入太麻烦,下次我还需要这样操作也麻烦,,,怎么办?
看图。
- name: copy.yml hosts: webs tasks: - name: 安装httpd yum : name=httpd state=installed - name: 复制file文件 copy: src=/tmp/file dest=/tmp/ - name: restart httpd service: name=httpd state=restarted - name: 创建文件likes file: path=/tmp/likes state=touch
执行playbook
[root@localhost test]# ansible-playbook a.yml
主管下次还让我这么做,我直接给他执行个playbook,,完活,喝茶。
没报红表示成功嘿嘿噗
playbook是由多个play组成,每play包括下面两项:
host:需要配置的一组主机
task:需要在这些主机上执行的任务
当然了还有其他的,vars,notify等,,,在这里先记下这两个,另外
name:一段注释信息,来描述这个play是来做什么的,Ansible会在执行之初play开始的时候打印这段name下的文字