ansible-playbook
Ansible执行任务的方式:
Ad-hoc:
ansible
playbook:
ansible-playbook
执行playbook剧本文件
ansible-playbook httpd.yml
语法检测
ansible-playbook --syntax-check httpd.yml
----------------------------
playbook中的核心元素:
hosts: #执行任务的主机组
tasks: #任务列表
vars: #变量
remote_user: #连接远程主机的用户
name: #单个任务的说明,一个name一个任务,单个name下只能使用一个模块
ignore_errors: # 忽略任务的报错,继续往下执行
----------------------------
案例
批量源码部署Nginx
##################################################################
---
- hosts: webservers
tasks:
- name: "分发nginx安装包"
copy: src=nginx-1.18.0.tar.gz dest=/root/
- name: "解压源码包"
shell: cd /root/ && tar zxf nginx-1.18.0.tar.gz
- name: "安装依赖环境"
yum: name=gcc,pcre-devel,openssl-devel state=latest
- name: "编译安装Nginx"
shell: cd /root/nginx-1.18.0 && ./configure && make && make install
- name: "启动Nginx"
shell: /usr/local/nginx/sbin/nginx
##################################################################
变量的定义和引用
##################################################################
---
- hosts: webservers
vars:
page: 1806A
tasks:
- name: "创建Nginx测试页面,内容为:{{ page }}"
shell: echo "{{ page }}" > /usr/local/nginx/html/index.html
在模板文件中引用变量
创建测试页面模板
vim index.html.j2
"{{ page }}"
---
- hosts: webservers
vars:
page: 1806A
tasks:
- name: "创建Nginx测试页面"
template: src=index.html.j2 dest=/usr/local/nginx/html/index.html
##################################################################