Ansible小试牛刀

发布于:2025-06-11 ⋅ 阅读:(19) ⋅ 点赞:(0)

注意事项

除了安装的zabbix相关组件

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

安装软件

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

MySQL 

Redis

NGINX

openjdk

maven

nodejs

keepalived

iptables

ipvsadm

使用剧本

---
- 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


网站公告

今日签到

点亮在社区的每一天
去签到