Ansible小试牛刀

注意事项

除了安装的zabbix相关组件

使用此脚本安装的所有软件版本均为系统默认版本

安装软件

zabbix相关组件,包括server,agent等

MySQL

Redis

NGINX

openjdk

maven

nodejs

keepalived

iptables

ipvsadm

使用剧本

javascript 复制代码
---
- hosts: all
  name: zabbix-agent-set
  user: root
  gather_facts: yes
  vars:
    lvs_iptables_packages:
    - iptables
    - ipvsadm
    nginx_packages:
    - nginx
    - keepalived
    - nodejs
    redis_cluster_packages:
    - redis
    - tree
    mysql_packages:
    - mysql
    - mysql-server
    zabbix_packages:
    - zabbix-server-mysql
    - zabbix-web-mysql
    - zabbix-nginx-conf
    - zabbix-sql-scripts
    - zabbix-selinux-policy
    - zabbix-agent2
    java_packages:
    - maven
    - java-17-openjdk
    all_packages:
    - zabbix-agent2
    - zabbix-agent2-plugin-mongodb
    - zabbix-agent2-plugin-mssql
    - zabbix-agent2-plugin-postgresql
    - epel-release
  tasks:
  - name: judge zabbix-agent yum repositry exists
    shell: cat /etc/yum.repos.d/zabbix.repo
    ignore_errors: yes
    register: repo_result

  - name: set zabbix-agent yum repository
    shell: rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm \           && dnf clean all
    when: repo_result.rc != 0

  - name: install zabbix-agent package and plugin
    dnf:
      name: "{{ item }}"
      state: installed
    loop: "{{ all_packages }}"

  - name: install lvs-iptables package
    dnf:
      name: "{{ item }}"
      state: installed
    loop: "{{ lvs_iptables_packages }}"
    when: "'security' in  group_names "

  - name: install nginx package
    dnf:
      name: "{{ item }}"
      state: installed
    loop: "{{ nginx_packages }}"
    when: "'web' in  group_names "

  - name: install java package
    dnf:
      name: "{{ item }}"
      state: installed
    loop: "{{ java_packages }}"
    when: "'application' in  group_names "

  - name: install mysql package
    dnf:
      name: "{{ item }}"
      state: installed
    loop: "{{ mysql_packages }}"
    when: "'mysql' in  group_names "

  - name: install redis package
    dnf:
      name: "{{ item }}"
      state: installed
    loop: "{{ redis_cluster_packages }}"
    when: "'redis' in  group_names "

  - name: install zabbix-server package
    dnf:
      name: "{{ item }}"
      state: installed
    loop: "{{ zabbix_packages }}"
    when: "'zabbix' in  group_names "

  - name: copy zabbix-agent configure
    copy:
      src: /root/zabbix_agent2.conf
      dest: /etc/zabbix/zabbix_agent2.conf

  - name: copy diy system minitor script
    copy:
      src: /root/system_os.sh
      dest: /etc/zabbix/zabbix_agent2.d/system_os.sh

  - name: copy diy minitor configure file
    copy:
      src: /root/system_os.conf
      dest: /etc/zabbix/zabbix_agent2.d/system_os.conf

  - name: copy mysql minitor script
    copy:
      src: /root/mysql_minitor.sh
      dest: /etc/zabbix/zabbix_agent2.d/mysql_minitor.sh
    when: "'mysql' in  group_names "

  - name: copy mysql minitor configure file
    copy:
      src: /root/mysql_minitor.conf
      dest: /etc/zabbix/zabbix_agent2.d/mysql_minitor.conf
    when: "'mysql' in group_names "

  - name: copy redis minitor script
    copy:
      src: /root/redis_minitor.sh
      dest: /etc/zabbix/zabbix_agent2.d/redis_minitor.sh
    when: "'redis' in group_names "

  - name: copy redis minitor configure file
    copy:
      src: /root/redis_minitor.conf
      dest: /etc/zabbix/zabbix_agent2.d/redis_minitor.conf
    when: "'redis' in group_names "

  - name: start zabbix-agent2 service
    service:
      name: zabbix-agent2
      state: restarted
      enabled: yes
相关推荐
道清茗3 天前
【RH294知识点汇总】第 7 章 《 使用角色和 Ansible 内容集合简化 Playbook 》常见问题
ansible
何中应4 天前
Ansible安装&使用
运维·自动化·ansible·运维开发·自动化运维
王九思4 天前
Ansible 自动化运维基础—模板
运维·自动化·ansible
道清茗5 天前
【RH294知识点汇总】第 7 章 《 使用角色和 Ansible 内容集合简化 Playbook 》
java·前端·ansible
切糕师学AI5 天前
深入解析 Ansible:从入门到实践
ansible
王的宝库5 天前
【Ansible】变量与敏感数据管理:Vault 加密 + Facts 采集详解
笔记·学习·ansible
张3237 天前
Ansible拆分大型Playbook
linux·ansible
爱莉希雅&&&7 天前
Ansible+Docker案例(含ansible配置安装docker)
linux·运维·mysql·nginx·docker·容器·ansible
张3237 天前
配置加载混淆(vars_files与from_yaml)
ansible
张3237 天前
角色与内容集合:自动化配置的标准化复用机制
运维·自动化·ansible