Ansible-Playbook

剧本的组成

1、定义主机信息 hosts
2、做什么事 tasks

剧本编写规范

属于py的yaml格式,三点要求
1、合理的信息缩进,一定不能用tab键缩进,两个空格表示一个缩进关系
2、冒号的使用方法,使用冒号时要有空格信息,以冒号结尾,冒号信息出现在注释说明中都不需要加空格了
3、短横线应用 -(列表功能),使用短横线构成列表信息,短横线后面需要有空格

编写剧本

剧本最好放到统一的目录,我这里放到/etc/ansible/ansible-playbook下
vim rsync_server.yaml

- hosts: 192.168.168.129
  tasks:
    - name: 01 install resync
      yum: name=rsync state=installed
    - name: 02 push conf file
      copy: src=/tmp/rsyncd.conf dest=/etc/

执行剧本

·1、检测剧本的语法格式

ansible-playbook --syntax-check rsync_server.yaml

2、彩排剧本

ansible-playbook -C rsync_server.yaml

3、执行剧本

ansible-playbook rsync_server.yaml

主机清单配置

分组配置主机信息

vim hosts

[test01]
192.168.168.129
192.168.168.130
[test02]
192.168.168.131
192.168.168.132

操作过程

ansible test01 -m shell -a "date"
ansible test02 -m shell -a "date"

主机名符号匹配配置

vim hosts

#IP地址
[test01]
192.168.168.[129:132]
#主机名
[test01]
test[01:04]

支持非标准远程端口配置

vim hosts

[test01]
192.168.168.129:12345

支持主机的特殊变量

vim hosts

[test01:vars]
ansible_ssh_user=root
ansible_ssh_pass=1
[test01]
192.168.168.129 ansible_ssh_port=12345
192.168.168.130
192.168.168.131
192.168.168.132

主机组名嵌入式配置

vim hosts

[test:children]  #test组包括test01和test02的所有的IP
test01
test02

[test01]
192.168.168.129
192.168.168.130

[test02]
192.168.168.131
192.168.168.132

剧本的扩展功能

设置变量信息

  • 在剧本中定义变量
    vim rsync_server.yaml
- hosts: 192.168.168.129
  vars:
    cfgfile: /tmp/rsyncd.conf
  tasks:
    - name: 01 install resync
      yum: name=rsync state=installed
    - name: 02 push conf file
      copy: src={{ cfgfile }} dest=/etc/
    - name: start service
      serivce: name=rsyncd state=started enabled=yes
  • 在命令行中定义变量
    vim rsync_server.yaml
- hosts: 192.168.168.129
  tasks:
    - name: 01 install resync
      yum: name=rsync state=installed
    - name: 02 push conf file
      copy: src={{ cfgfile }} dest=/etc/
ansible-playbook -e cfgfile=/tmp/rsyncd.conf rsync_server.yaml
  • 在主机清单中配置变量

vim hosts

192.168.168.129 cfgfile=/tmp/rsyncd.conf

vim rsync_server.yaml

- hosts: 192.168.168.129
  tasks:
    - name: 01 install resync
      yum: name=rsync state=installed
    - name: 02 push conf file
      copy: src={{ cfgfile }} dest=/etc/

注册变量

vim hosts

192.168.168.129 cfgfile=/tmp/rsyncd.conf

vim rsync_server.yaml

- hosts: 192.168.168.129
  tasks:
    - name: 01 install resync
      yum: name=rsync state=installed
    - name: 02 push conf file
      copy: src={{ cfgfile }} dest=/etc/
    - name: register var
      command: date +"%F_%T"
      register: datetime
    - name: bakup cfg
     shell: cp /etc/rsyncd.conf /etc/rsyncd.conf_{{ datetime.stdout }}

############################################
   str.stdout  标准输出
   str.stderr  错误输出
   str.rc      命令返回值

判断

判断条件只能是setup模块中有的
vim hosts

192.168.168.129 cfgfile=/tmp/rsyncd.conf

vim rsync_server.yaml

- hosts: test
  tasks:
    - name: 01 install resync
      yum: name=rsync state=installed
    - name: 02 push conf file
      copy: src={{ cfgfile }} dest=/etc/
      when: (ansible_all_ipv4_addresses == "192.168.168.129")
    - name: register var
      command: date +"%F_%T"
      register: datetime
    - name: bakup cfg
     shell: cp /etc/rsyncd.conf /etc/rsyncd.conf_{{ datetime.stdout }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值