Ansible自動化部署的運用

2021-09-26 13:56:26 字數 3136 閱讀 2429

ansible,是乙個使用python語言開發的輕量級自動化運維工具。安裝部署過程簡單,學習曲線很平坦。由於業務的關係,需要在集群上部署1000個zabbix agent,借助ansible無疑是最好的選擇了。

yum –y install ansible

內網情況下,現在ansible及其依賴的rpm包,新增到yum源進行安裝。

在/etc/ansible中新增主機,主機配置檔案為hosts,也可以在ansible.cfg中修改配置

inventory=

具體hosts格式

[zabbix-agent] #分組名稱,最好是乙個檔案乙個分組。

ip ansible_ssh_user=』』 ansible_ssh_pass=』』 hostname=

ansible 檔案目錄:

├── ansible.cfg

├── hosts

└── roles

├── install_zabbix_agent

│ ├── file

│ │ ├── zabbix-agent-4.2.4-1.el7.x86_64.rpm

│ │ └── zabbix_agentd.conf

│ ├── handler

│ │ └── main.yml

│ └── tasks

│ ├── install.yml

│ ├── main.yml

│ └── setport.yml

└── install_zabbix_agent.yml

install_zabbix_agent.yml

- hosts: zabbix-agent

remote_user: root

sudo: yes

sudo_user: root

gather_facts: true

roles:

- install_zabbix_agent

handler下的 main.yml

- name: restart zabbix-agent

service: name=zabbix_agentd state=restarted

tasks 下的 main.yml

- import_tasks: install.yml

- import_tasks: setport.yml

install.yml

- block:

- name: "copy zabbix_agent to clients"

cpoy:

src=zabbix-agent-4.2.4-1.el7.x86_64.rpm

dest=/tmp

- name: "yum install zabbix_agent"

yum:

name: /tmp/zabbix-agent-4.2.4-1.el7.x86_64.rpm

state: present

- name: "copy zabbix_agentd.conf"

copy:

src=zabbix_agentd.conf

dest=/etc/zabbix/zabbix_agentd.conf

- name: disabled selinux

shell: /usr/sbin/setenforce 0 && sed -i 's/selinux=enforcing/selinux=disabled/g' /etc/sysconfig/selinux

- name: "start zabbix, enable zabbix"

service:

name=zabbix-agent

state=started

enabled=yes

notify:

- restart zabbix-agent

setport.yml:

- block:

- name: mkdir log file

shell: mkdir -p /var/log/zabbix

- name: chmod for log

shell: chmod -r 755 /var/log/zabbix

- name: chown for log

shell: chown -r zabbix. /var/log/zabbix

- name: chmod for zabbix

shell: chmod -r 755 /etc/zabbix

- name: chown for zabbix

shell: chown -r zabbix. /etc/zabbix

- name: change log filepath

shell: sed -i 's/logfile=\/var\/log\/zabbix\/zabbix_agent.log/logfile=\/var\/log\/zabbix\/}.log/g' /etc/zabbix/zabbix_agentd.conf

- name: change server ip

shell: sed -i 's/server=127.0.0.1/server=10.10.40.70/g' /etc/zabbix/zabbix_agentd.conf

- name: change server active ip

shell: sed -i 's/serveractive=127.0.0.1/serveractive=10.10.40.70/g' /etc/zabbix/zabbix_agentd.conf

- name: change hostname

shell: sed -i 's/hostname=zabbix server/hostname=}/g' /etc/zabbix/zabbix_agentd.conf

notify:

- restart zabbix-agent

ansible自動化部署nginx艾艾貼

說明 roles目錄下面有兩個角色,common為一些準確操作,install為安裝nginx的操作。每個角色下面又有幾個目錄,install為安裝nginx的操作,每個角色下面又有幾個目錄,handlers下面是當發生 改變時要執行的操作,通常用再配置檔案發生改變,重啟服務。files為安裝時用到...

rhel7 ansible 自動化部署示例

環境 centos 7 設定系統limit為65535 詳見 關閉selinux etc sysconfig selinux selinux disabled 安裝ansible yum install epel release ansible 配置ssh key配置ansible ansible目...

ansible自動化管理服務簡介及部署

一 ansible簡介 ansible批量管理服務概述 基於python語言開發的自動化軟體工具 基於ssh遠端管理服務實現遠端主機批量管理 ansible批量管理服務意義 提高工作的效率 提高工作準確度 減少維護的成本 減少重複性工作 ansible批量管理服務功能 可以實現批量系統操作配置 可以...