Ansible批量管理服务(剧本编写yml)

剧本编写规范: pyyaml -- 三点要求
1. 合理的信息缩进 两个空格表示一个缩进关系
标题一
  标题二
    标题三
PS: 在ansible中一定不能用tab进行缩进
剧本的组成
- hosts: xxx
tasks:
- name: xxxx:xxx
yum: xxx
- name:
2. 冒号的使用方法 - hosts: 172.16.1.100 tasks: yum: name=xx PS: 使用冒号时后面要有空格信息 以冒号结尾,冒号信息出现在注释说明中,后面不需要加上空格 3. 短横线应用 -(列表功能) - 张三 男 打游戏 运动 - 李四 女 学习 湖南 - 王五 男 运动 深圳 PS: 使用短横线构成列表信息,短横线后面需要有空格 开始编写剧本 mkdir /etc/ansible/ansible-playbook vim rsync_server.ymal 说明: 剧本文件扩展名尽量写为yaml或者yml 1. 方便识别文件是一个剧本文件 2. 文件编写时会有颜色提示 - hosts: 172.16.1.110 tasks: yum: name=rsync state=installed copy: src=/tmp/rsyncd.conf dest=/etc/ src=本地 dest=远端 如何执行剧本: 第一个步骤: 检查剧本的语法格式 ansible-playbook --syntax-check rsync_server.yaml 第二个步骤: 模拟执行剧本 ansible-playbook -C rsync_server.yaml 第三个步骤: 直接执行剧本 ansible-playbook rsync_server.yaml

05 剧本的编写方法
  剧本的作用: 可以一键化完成多个任务
  自动化部署nfs服务:
  服务端的操作

    第一个历程安装软件:rpcbind(一般是安装自启的,所以不需要安装)
    ansible 10.0.0.100 -m yum -a "name=nfs-utils state=installed" 
    
    第二个历程编写配置文件:
    ansible 10.0.0.100 -m copy -a "content=‘/data01 10.0.0.110(rw,sync)‘ dest=/etc/exports”
    
    第三个历程创建nfs目录并指定属主属组
    ansible 10.0.0.100 -m user -a "path=/data state=directory owner=nfsnobody group=nfsnobody"
    
    第四个历程启动服务
    ansible 10.0.0.100 -m service -a "name=nfs state=started enabled=yes"

剧本yml编写nfs:

Ansible批量管理服务(剧本编写yml)

#nfs server

- hosts: 10.0.0.110
  tasks:
    - name: 01-install nfs package
      yum:
        name: [nfs-utils, rpcbind]
        state: installed

    - name: 02-write conf file
      copy: content=/data01 10.0.0.110(rw,sync) dest=/etc/exports

    - name: 03-create  dir
      file: path=/data01 state=directory owner=nfsnobody group=nfsnobody

    - name: 04-restart nfs server an enable
      service: name={{ item }} state=restarted enabled=yes
      with_items:
        - rpcbind
        - nfs

06 如何配置主机清单
第一种方式: 分组配置主机信息
[web]
172.16.1.7
172.16.1.8
172.16.1.9

[data]
172.16.1.31
172.16.1.41
操作过程
[root@m01 ansible-playbook]# ansible data -a "hostname"
172.16.1.31 | CHANGED | rc=0 >>
nfs01

172.16.1.41 | CHANGED | rc=0 >>
backup


第二种方式: 主机名符号匹配配置
[web]
172.16.1.[7:9]
[web]
web[01:03]

第三种方式: 跟上非标准远程端口
[web]
web01:52113
172.16.1.7:52113

第四种方式: 主机使用特殊的变量
[web] 未分发秘钥时连接
172.16.1.7 ansible_ssh_port=52113 ansible_ssh_user=root ansible_ssh_pass=123456
[web] 未进行解析时
web01 ansible_ssh_host=172.16.1.7 ansible_ssh_port=52113 ansible_ssh_user=root ansible_ssh_pass=123456

第五种方式: 主机组名嵌入配置
[rsync:children] --- 嵌入子组信息
rsync_server
rsync_client

[rsync_server]
172.16.1.41

[rsync_client]
172.16.1.31
172.16.1.7

[web:vars] --- 嵌入式变量信息
ansible_ssh_host=172.16.1.7
ansible_ssh_port=52113
ansible_ssh_user=root
ansible_ssh_pass=123456
[web]
web01

主机清单的配置方法:
https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html

 

Ansible批量管理服务(剧本编写yml)

上一篇:charles-修改请求;也就是所谓的断点;


下一篇:在VS2013 MVC项目中上传图片