目录
[3.案例2 分发 安装软件包 启动服务的剧本](#3.案例2 分发 安装软件包 启动服务的剧本)
[4.ansible 剧本变量](#4.ansible 剧本变量)
[4.2 在剧本中定义变量](#4.2 在剧本中定义变量)
[4.3共用变量 变量文件 编辑](#4.3共用变量 变量文件 编辑)
[4.4 共用变量 根据主机组使用变量](#4.4 共用变量 根据主机组使用变量)
1.剧本格式
2.案例1创建目录分发文件剧本
2.1剧本中用到的命令
书写一个创建文件并且分发的剧本
首先我们要写出创建目录然后分发的两个ansible命令
ansible -m file -a 'path=/server/path state=directory'
ansible -m copy -a 'path=/etc/hosts dest=/server/files/ '
2.2书写具体剧本
我们需要把命令的模式改为剧本
所以我们根据格式书写以下剧本
---
- hosts: all
tasks:
- name: 01
file:
path: /server/files
state: directory
- name: 02
file:
src: /etc/hosts
dst: /server/files/
3.案例2 分发 安装软件包 启动服务的剧本
找出用到的每个命令
3.1下载软件包
wget https://mirrors.tuna,tsinghua.edu.cn/zabbix/zabbix/60/rhel/7/x86 64/zabbix-agent-6.0.7-1.el7.x86_64.rpm
3.2用yum安装
yum -y install zabbix-agent
3.3启动服务
systemctl zabbix-agent start
4.找出ansible中对应的模块
下载安装包 get_url 模块
安装 yum 模块
启动 systemd 模块
5.剧本实现
- hosts: all
tasks:
- name: 01
get_url:
url: "https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix6.0/rhel/7/x86_64/zabbix-agent-6.0.7-1.el7.x86_64.rpm"
validate_certs: no
dest: /tmp/
- name: 02
yum:
name: /tmp/zabbix-agent-6.0.7-1.el7.x86_64.rpm
state: present
- name: 03
debug:
msg: "进行配置zabbix"
- name: 04
systemd:
name: zabbix-agent
enable: yes
state: started
4.ansible 剧本变量
4.1常用的变量的几种模式
在剧本中定义
共同变量
facts变量
regsiter变量
4.2 在剧本中定义变量
- hosts: all
vars:
dir: /oldboy/tidao/upload/tasks:
tasks:
- name: mkdir
file:
path: "{{ dir }}"
state: directory
比如这个例子中vars下面定义了一个地址并且赋值给dir 但是要注意我们在使用时如果变量是选项的开头那么引用时需要加上双引号
4.3共用变量 变量文件
在这里引用一个文件 使用文件里面的变量
4.4 共用变量 根据主机组使用变量
在/server/scripts/playbook/下创建一个属于all这个主机组的文件,并且在另外一个主机分组为ALL的剧本文件中文件中
4.5facts变量
4.6rgister变量
本质上就是实现反引号的功能的