自动化运维工具ANSIBLE(五)

Playbook中handlers tags使用

# 创建 nginx组,nginx用户,安装 nginx,拷贝配置文件,一旦配置文件发生变化,触发启动服务,发测试信号0看是否服务启动
# 可以选择性地执行tag标签的任务 ansible-playbook -t group nginx.yml

vim /playbook/nginx.yml
- hosts: websrvs
remote_user: root
tasks:
- name: add group nginx
tags: group
group: name=nginx state=present
- name: add user nginx
user: name=nginx state=present group=nginx
- name: Install Nginx
yum: name=nginx state=present
- name: config
copy: src=/root/config.txt dest=/etc/nginx/nginx.conf
notify:
- Restart Nginx
- Check Nginx Process
handlers:
- name: Restart Nginx
service: name=nginx state=restarted enabled=yes
- name: Check Nginx process
shell: killall -0 nginx > /tmp/nginx.log

批量创建类似虚拟主机配置文件

vim /playblook/for.yml
- hosts: websrvs
  remote_user: root

  vars:
   ports:
    - web1:
      listen_port: 81
      name: www.xuepeng.com
      root: /data/web1
    - web2:
      listen_port: 82
      name: ftp.xuepeng.com
      root: /data/web2
    - web3:
      listen_port: 83
      name: db.xuepeng.com
      root: /data/web3
    - web4:
      listen_port: 84
      name: nfs.xuepeng.com
      root: /data/web4

  tasks:
   - name: copy config
     template: src=server.conf.j2 dest=/data/server.conf
vim /playblook/templates/server.conf.j2
{%for port in ports%}
server {
        listen {{port.listen_port}};
        server_name {{port.name}};
        root {{port.root}};
}
{%endfor%}

多台主机生成如下文件
在这里插入图片描述

批量创建用户,组

---
- hosts: websrvs
  remote_user: root

  tasks:
   - name: create user
     group: name={{item}}
     with_items:
      - group01
      - group02
      - group03
   - name: create user
     user: name={{item.name}} group={{item.group}}
     with_items:
      - { name: zhangsan, group: group01 }
      - { name: lisi, group: group02 }
      - { name: wangwu, group: group03 }

批量安装软件包

---
- hosts: websrvs
  remote_user: root

  tasks:
   - name: install multi packages
     yum: name={{item}} state=present
     with_items:
      - httpd
      - samba
      - vsftpd
      - dhcp
      - autofs
      - lsof
      - nfs-utils
      - rpcbind
发布了18 篇原创文章 · 获赞 0 · 访问量 864

猜你喜欢

转载自blog.csdn.net/studywinwin/article/details/104066524