自动化运维工具ANSIBLE(五)

本文详细介绍如何使用Ansible Playbook进行批量系统配置与管理,包括创建用户与组、安装软件包、配置服务并实现自动重启,以及通过模板批量生成虚拟主机配置文件。通过示例展示了如何利用Ansible的handler和tags特性提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值