ansible-playbook
ansible-playbook是什么:
playbook是由一个或多个play组成的列表,play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来讲,所谓的task无非是调用ansible的一个module。将多个play组织在一个playbook中,即可以让它们联合起来按事先编排的机制完成某一任务
ansible-playbook像脚本可以快捷的重复性的执行以yaml语法格式,后缀可以是yaml,也可以是yml。
ansible-playbook可以理解为
注册变量
register: 我们可以将执行的命令的结果注册到某个变量中,然后可以让后面的任务进行引用
when: 判断,我们可以给某个任务增加一个判断条件,条件满足的主机才执行任务,不满足的主机不执行任务
---
- hosts: webservers
tasks:
- name: "获取nginx运行状态"
shell: ss -ntl | grep -wc 80
register: port
- name: "启动Nginx"
shell: /usr/local/nginx/sbin/nginx
when: port.stdout == "0"
str.stdout 标准输出
str.stderr 错误输出
str.rc 命令返回值
循环变量
with_item:
启动多个服务:
---
- hosts: webservers
tasks:
- name: 启动mysql和php
systemd: name={{ item }} state=started
with_items:
- mariadb
- php-fpm
复制多个文件:
---
- hosts: webservers
tasks:
- name: copy files
copy: src={{ item.src }} dest={{ item.dest }}
with_items:
- { src: "a.txt", dest: "/root" }
- { src: "b.txt", dest: "opt" }
- name: 启动服务
systemd: name=mariadb,httpd,php-fpm