内容简介:Ansible playbook入门
playbook是Ansible进行配置管理的基本组件。
第一个playbook
Ansible playbook的文件格式为yaml,具体yaml的语法可以参考 这里 。
下面我们编写一个使用yum安装nginx的playbook作为入门,nginx.yaml的内容如下:
---
- hosts: web-servers
tasks:
- selinux: state=disabled
- name: Add repository
yum_repository:
name: nginx
baseurl: http://nginx.org/packages/centos/7/$basearch/
gpgcheck: no
enabled: yes
description: nginx repo
- name: Install nginx
yum: name=nginx state=present
- name: Copy nginx.conf
template: src=./nginx.conf.j2 dest=/etc/nginx/nginx.conf owner=root group=root mode=0644 validate='nginx -t -c %s'
notify:
- Restart nginx
handlers:
- name: Restart nginx
systemd: name=nginx state=restarted enabled=yes
-
- hosts: web-servers定义了该playbook的目标主机,这里指定了资源清单文件/etc/ansible/hosts中的web-servers组,如果目标是所有主机则可以使用all -
tasks:定义该playbook的task集合,可以使用ansible-playbook nginx.yaml --list-task打印playbook中的task。 -
- selinux: state=disabled定义了一个名称为selinux的task,使用Ansible的 selinux module禁用目标主机上的色Linux。 -
- name: Add repository定义的task使用Ansible的 yum_repository module向目标主机添加nginx官方的yum repo -
- name: Install nginx定义的task使用Ansible的 yum module在各个目标主机上安装nginx -
- name: Copy nginx.conf定义的task使用Ansible的 template module将nginx.conf.j2模板生成nginx.conf配置文件并推送到各个目标主机。notify指定了配置文件推送成功且配置文件内容发生变化侯触发名称为Restart nginx的handler。 -
handlers中只有一个Restart nginx的handler,使用Ansible的 systemd module实现重启nginx服务。
nginx.conf.j2模板是 python 的Jinja2模本,这里作为一个入门的例子,先不考虑模板功能,直接使用一个期望的nginx配置文件的内容即可。
运行playbook
在运行playbook之前可以对playbook的语法进行检查:
ansible-playbook nginx.yaml --syntax-check playbook: nginx.yaml
查看playbook中的task:
ansible-playbook nginx.yaml --list-task
显示playbook面向的主机:
ansible-playbook nginx.yaml --list-hosts
运行playbook:
ansible-playbook nginx.yaml
playbook运行成功后,会在各个目标主机上安装并启动nginx。以后如果需要更改nginx.conf的内容,只需要修改nginx.conf.j2,在运行这个playbook时,指定运行 Copy nginx.conf
这个task。
ansible-playbook nginx.yaml --start-at-task='Copy nginx.conf'
参考
以上所述就是小编给大家介绍的《Ansible playbook入门》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
GitHub入门与实践
[日] 大塚弘记 / 支鹏浩、刘斌 / 人民邮电出版社 / 2015-7 / 39.00元
本书从Git的基本知识和操作方法入手,详细介绍了GitHub的各种功能,GitHub与其他工具或服务的协作,使用GitHub的开发流程以及如何将GitHub引入到企业中。在讲解GitHub的代表功能Pull Request时,本书专门搭建了供各位读者实践的仓库,邀请各位读者进行Pull Request并共同维护。一起来看看 《GitHub入门与实践》 这本书的介绍吧!