commit
8e1835f677
3
.gitignore
vendored
3
.gitignore
vendored
@ -6,5 +6,4 @@
|
||||
.vagrant/
|
||||
|
||||
# Log files (if you are creating logs in debug mode, uncomment this)
|
||||
# *.log
|
||||
|
||||
*.log
|
||||
|
@ -1 +1,7 @@
|
||||
## Feltöltés alatt...
|
||||
## Mit találsz ebben a publikus repóban?
|
||||
Készítettem egy egyszerű ansible playbookot, ami 4 különböző operációs rendszerrel (CentOS 7, Alma Linux 8, Ubuntu 22.04, Debian 11) is kompatibilis.
|
||||
A másik csavar, hogy a teszteléshez szükséges 4 virtuális gépet automatizálva hozom létre a Vagrant segítségével.
|
||||
A Vagrantról írtam több cikket is a [honlapomon](https://msandor.hu/category/vagrant/).
|
||||
A playbook feltelepíti és bekonfigurálja a zabbix-agent-eket.
|
||||
|
||||
A frissített verzió már egy `zbxsrv` nevű szervert is létrehoz, egyelőre még kézzel kell rá feltelepíteni a dockert és a zabbix-serverhez szükséges docker-compose.yml-t.
|
||||
|
83
Vagrantfile
vendored
Normal file
83
Vagrantfile
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
Vagrant.configure("2") do |config|
|
||||
|
||||
config.vm.define "vm1" do |vm1|
|
||||
vm1.vm.network "private_network", ip: "192.168.56.2"
|
||||
vm1.vm.box = "centos/7"
|
||||
vm1.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "512"
|
||||
vb.cpus = 1
|
||||
end
|
||||
vm1.vm.provision "shell", inline: <<-SHELL
|
||||
yum install mc epel-release httpd net-tools -y
|
||||
yum update -y
|
||||
systemctl enable --now httpd
|
||||
echo "vm1" > /etc/hostname
|
||||
hostname -F /etc/hostname
|
||||
SHELL
|
||||
end
|
||||
|
||||
config.vm.define "vm2" do |vm2|
|
||||
vm2.vm.network "private_network", ip: "192.168.56.3"
|
||||
vm2.vm.box = "almalinux/8"
|
||||
vm2.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "512"
|
||||
vb.cpus = 1
|
||||
end
|
||||
vm2.vm.provision "shell", inline: <<-SHELL
|
||||
dnf install mc epel-release httpd net-tools -y
|
||||
dnf update -y
|
||||
systemctl enable --now httpd
|
||||
echo "vm2" > /etc/hostname
|
||||
hostname -F /etc/hostname
|
||||
SHELL
|
||||
end
|
||||
|
||||
config.vm.define "vm3" do |vm3|
|
||||
vm3.vm.network "private_network", ip: "192.168.56.4"
|
||||
vm3.vm.box = "ubuntu/jammy64"
|
||||
vm3.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "512"
|
||||
vb.cpus = 1
|
||||
end
|
||||
vm3.vm.provision "shell", inline: <<-SHELL
|
||||
apt-get update && apt-get upgrade -y
|
||||
apt-get install mc apache2 -y
|
||||
apt-get clean
|
||||
echo "vm3" > /etc/hostname
|
||||
hostname -F /etc/hostname
|
||||
SHELL
|
||||
end
|
||||
|
||||
config.vm.define "vm4" do |vm4|
|
||||
vm4.vm.network "private_network", ip: "192.168.56.5"
|
||||
vm4.vm.box = "debian/bullseye64"
|
||||
vm4.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "512"
|
||||
vb.cpus = 1
|
||||
end
|
||||
vm4.vm.provision "shell", inline: <<-SHELL
|
||||
apt-get update && apt-get upgrade -y
|
||||
apt-get clean
|
||||
apt-get install mc apache2 -y
|
||||
echo "vm4" > /etc/hostname
|
||||
hostname -F /etc/hostname
|
||||
SHELL
|
||||
end
|
||||
|
||||
config.vm.define "zbxsrv" do |zbxsrv|
|
||||
zbxsrv.vm.network "private_network", ip: "192.168.56.6"
|
||||
zbxsrv.vm.box = "centos/7"
|
||||
zbxsrv.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "512"
|
||||
vb.cpus = 1
|
||||
end
|
||||
zbxsrv.vm.provision "shell", inline: <<-SHELL
|
||||
yum install mc epel-release httpd net-tools -y
|
||||
yum update -y
|
||||
systemctl enable --now httpd
|
||||
echo "zbxsrv" > /etc/hostname
|
||||
hostname -F /etc/hostname
|
||||
SHELL
|
||||
end
|
||||
|
||||
end
|
17
ansible.cfg
Normal file
17
ansible.cfg
Normal file
@ -0,0 +1,17 @@
|
||||
[defaults]
|
||||
host_key_checking = False
|
||||
inventory = ./inventory/inventory.yml
|
||||
log_path = log/ansible.log
|
||||
timeout = 60
|
||||
deprecation_warnings = False
|
||||
command_warnings = False
|
||||
interpreter_python = auto_legacy_silent
|
||||
|
||||
ansible_managed = This file is managed by Ansible, all changes will be lost! PLEASE DO NOT EDIT!%n
|
||||
template: {file}
|
||||
date: %Y.%m.%d. %H:%M:%S
|
||||
user: {uid}
|
||||
host: {host}
|
||||
|
||||
[ssh_connection]
|
||||
scp_if_ssh=True
|
154
changelog.md
Normal file
154
changelog.md
Normal file
@ -0,0 +1,154 @@
|
||||
# CHANGELOG
|
||||
|
||||
## 8.0
|
||||
Történt némi átalakítás:
|
||||
* a hivatalos zabbix repóból telepítem fel az agenteket
|
||||
* ennek köszönhetően már nem kell bizonyos változókat (ZBXDIR, ZBXLOGDIR) külön kezelni inventory szinten
|
||||
* a zabbix-servernek létrehoztam egy dedikált szervert (zbxsrv)
|
||||
* mivel végesek a laptopom erőforrásai, és az agenteken kívül csak egy apache webszerver fut a demó szervereken (még az első lecke miatt), ezért megfeleztem a VCPU és memória értékeket
|
||||
|
||||
Erről írtam egy cikket [itt]()
|
||||
|
||||
## 7.0
|
||||
Elkészült az első két cikkem `zabbix-server` témában.
|
||||
|
||||
A létrehozott demó környezetnek más lett a zabbix-server IP címe, így azt az egy paramétert megváltoztattam az inventory/group_vars/all.yml fájlvan:
|
||||
`192.168.5.250 --> 192.168.56.7`
|
||||
|
||||
Valamint megkapta a titkosított kommunikációhoz (`PSK`) szükséges bővítéseket.
|
||||
|
||||
Erről írtam két cikket [itt 1.](https://msandor.hu/zabbix-szerver-az-alapok/) és [itt 2.](https://msandor.hu/zabbix-server-meruljunk-el-az-agent-beallitasokban/).
|
||||
|
||||
## 6.0
|
||||
Elkészült a harmadik cikkem `Ansible` témában.
|
||||
|
||||
Eljutottunk a playbook egy szebb formájához, könnyebb átlátni, bővíteni a jövőben.
|
||||
|
||||
Erről írtam egy cikket [itt](https://msandor.hu/ansible-mire-jo-a-template/).
|
||||
|
||||
## 5.0
|
||||
Elkészült a második cikkem `Ansible` témában.
|
||||
|
||||
Készítettem egy playbookot, ami a 4 vm-re feltelepíti a zabbix-agentet, valamint beállít 5 paramétert.
|
||||
|
||||
Ez két új fájlt jelent: playbook/install-zabbix-agent.yml, inventory/group_vars/all.yml
|
||||
|
||||
Erről írtam egy cikket [itt](https://msandor.hu/ansible-irjunk-playbookot/).
|
||||
|
||||
## 4.0
|
||||
Elkészült az első cikkem `Ansible` témában.
|
||||
|
||||
Csak az alapok, pár könnyen megérthető példával.
|
||||
|
||||
Létrehoztam a hozzá tartozó mappákat.
|
||||
|
||||
És a két legfontosabb fájlt (ansible.cfg, inventory.yml) feltöltöttem a legszükségesebb adatokkal.
|
||||
|
||||
Erről írtam egy cikket [itt](https://msandor.hu/ansible-az-alapok-bemutatasa-egyszeru-peldakkal/).
|
||||
|
||||
## 3.0
|
||||
Egy nagy ugrással eljutottunk a 3.0-s Vagrantfile-hoz, hozzáadtam még 3 másik operációs rendszert is
|
||||
|
||||
Kommentek nélkül így néz ki:
|
||||
```ruby
|
||||
Vagrant.configure("2") do |config|
|
||||
|
||||
config.vm.define "vm1" do |vm1|
|
||||
vm1.vm.network "private_network", ip: "192.168.56.2"
|
||||
vm1.vm.box = "centos/7"
|
||||
vm1.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "1024"
|
||||
vb.cpus = 2
|
||||
end
|
||||
vm1.vm.provision "shell", inline: <<-SHELL
|
||||
yum install mc epel-release httpd net-tools -y
|
||||
yum update -y
|
||||
systemctl enable --now httpd
|
||||
echo "vm1" > /etc/hostname
|
||||
hostname -F /etc/hostname
|
||||
SHELL
|
||||
end
|
||||
|
||||
config.vm.define "vm2" do |vm2|
|
||||
vm2.vm.network "private_network", ip: "192.168.56.3"
|
||||
vm2.vm.box = "almalinux/8"
|
||||
vm2.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "1024"
|
||||
vb.cpus = 2
|
||||
end
|
||||
vm2.vm.provision "shell", inline: <<-SHELL
|
||||
dnf install mc epel-release httpd net-tools -y
|
||||
dnf update -y
|
||||
systemctl enable --now httpd
|
||||
echo "vm2" > /etc/hostname
|
||||
hostname -F /etc/hostname
|
||||
SHELL
|
||||
end
|
||||
|
||||
config.vm.define "vm3" do |vm3|
|
||||
vm3.vm.network "private_network", ip: "192.168.56.4"
|
||||
vm3.vm.box = "ubuntu/jammy64"
|
||||
vm3.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "1024"
|
||||
vb.cpus = 2
|
||||
end
|
||||
vm3.vm.provision "shell", inline: <<-SHELL
|
||||
apt-get update && apt-get upgrade -y
|
||||
apt-get install mc apache2 -y
|
||||
apt-get clean
|
||||
echo "vm3" > /etc/hostname
|
||||
hostname -F /etc/hostname
|
||||
SHELL
|
||||
end
|
||||
|
||||
config.vm.define "vm4" do |vm4|
|
||||
vm4.vm.network "private_network", ip: "192.168.56.5"
|
||||
vm4.vm.box = "debian/bullseye64"
|
||||
vm4.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "1024"
|
||||
vb.cpus = 2
|
||||
end
|
||||
vm4.vm.provision "shell", inline: <<-SHELL
|
||||
apt-get update && apt-get upgrade -y
|
||||
apt-get clean
|
||||
apt-get install mc apache2 -y
|
||||
echo "vm4" > /etc/hostname
|
||||
hostname -F /etc/hostname
|
||||
SHELL
|
||||
end
|
||||
|
||||
end
|
||||
```
|
||||
Erről is írtam egy cikket [itt](https://msandor.hu/vagrant-jojjon-a-labor/).
|
||||
|
||||
## 2.0
|
||||
Több lépésben jutottunk el a 2.0-s Vagrantfile-hoz, bővült az erőforrás (cpu, mem), kapott dedikált hálókártyát, és telepítéskor lefuttat pár parancsot is.
|
||||
|
||||
Kommentek nélkül így néz ki:
|
||||
```ruby
|
||||
Vagrant.configure("2") do |config|
|
||||
config.vm.box = "centos/7"
|
||||
config.vm.network "private_network", ip: "192.168.56.2"
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "1024"
|
||||
vb.cpus = 2
|
||||
end
|
||||
config.vm.provision "shell", inline: <<-SHELL
|
||||
yum install mc epel-release httpd net-tools -y
|
||||
yum update -y --skip-broken
|
||||
systemctl enable --now httpd
|
||||
SHELL
|
||||
end
|
||||
```
|
||||
Erről is írtam egy cikket [itt](https://msandor.hu/lepjunk-szintet-a-vagranttal/).
|
||||
|
||||
## 1.0
|
||||
Elkészült az első Vagrantfile, benne a kötelező 3 sorral, egy CentOS 7 OS-t indítva.
|
||||
|
||||
Kommentek nélkül így néz ki:
|
||||
```ruby
|
||||
Vagrant.configure("2") do |config|
|
||||
config.vm.box = "centos/7"
|
||||
end
|
||||
```
|
||||
Erről írtam egy cikket [itt](https://msandor.hu/vagrant-teszt-kornyezet-villamgyorsan/).
|
4
inventory/group_vars/all.yml
Normal file
4
inventory/group_vars/all.yml
Normal file
@ -0,0 +1,4 @@
|
||||
ZBXSERVER: '192.168.56.6'
|
||||
ZBXLOGFILESIZE: '50'
|
||||
ZBXAGENTPORT: '10050'
|
||||
ZBXLISTENIP: '0.0.0.0'
|
31
inventory/inventory.yml
Normal file
31
inventory/inventory.yml
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
all:
|
||||
hosts:
|
||||
localhost:
|
||||
children:
|
||||
servers:
|
||||
vars:
|
||||
ansible_ssh_user: vagrant
|
||||
hosts:
|
||||
vm1:
|
||||
ansible_host: 192.168.56.2
|
||||
ansible_ssh_private_key_file: .vagrant/machines/vm1/virtualbox/private_key
|
||||
psk_key: 00fcb3f04e646dd9186717bb43f96aa829d01d497ea31254ca72a1ebe568aa96
|
||||
vm2:
|
||||
ansible_host: 192.168.56.3
|
||||
ansible_ssh_private_key_file: .vagrant/machines/vm2/virtualbox/private_key
|
||||
psk_key: 2009df4793fbd2f4afd351b825e43e4a2463524fd64fd08c27c9e353f085c94f
|
||||
vm3:
|
||||
ansible_host: 192.168.56.4
|
||||
ansible_ssh_private_key_file: .vagrant/machines/vm3/virtualbox/private_key
|
||||
psk_key: 182e39bb63953f682347f717359a24621556d83516c54fff00e86dd8e9d89b45
|
||||
vm4:
|
||||
ansible_host: 192.168.56.5
|
||||
ansible_ssh_private_key_file: .vagrant/machines/vm4/virtualbox/private_key
|
||||
psk_key: d8f5c88673de18afdde646ed3590fbe36d2951b9cfe8fac56e8b722115e791ee
|
||||
zbxsrv:
|
||||
ansible_host: 192.168.56.6
|
||||
ansible_ssh_private_key_file: .vagrant/machines/zbxsrv/virtualbox/private_key
|
||||
psk_key: 2d0d1ed6caf68a65088ff9e8f04c07c274ddf636293dcaf852da7383d0b92e29
|
||||
ZBXLISTENIP: 172.17.0.1
|
||||
ZBXSERVER: 192.168.151.2
|
13
playbook/install-zabbix-agent.yml
Normal file
13
playbook/install-zabbix-agent.yml
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
- hosts: all
|
||||
become: true
|
||||
tasks:
|
||||
|
||||
- include: ~/git/ansible_vagrant/tasks/install-zabbix-repo.yml
|
||||
- include: ~/git/ansible_vagrant/tasks/install-zabbix_agent.yml
|
||||
- include: ~/git/ansible_vagrant/tasks/configure-zabbix_agent.yml
|
||||
- include: ~/git/ansible_vagrant/tasks/service-zabbix_agent.yml
|
||||
|
||||
handlers:
|
||||
- name: restart zabbix-agent
|
||||
service: name=zabbix-agent state=restarted
|
12
tasks/configure-zabbix_agent.yml
Normal file
12
tasks/configure-zabbix_agent.yml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
- name: Zabbix Agent konfigurálása
|
||||
diff: yes
|
||||
template: src=~/git/ansible_vagrant/templates/zabbix_agentd.conf.j2 dest=/etc/zabbix/zabbix_agentd.conf backup=yes
|
||||
notify:
|
||||
- restart zabbix-agent
|
||||
|
||||
- name: Zabbix Agent PSK fájl létrehozása
|
||||
diff: yes
|
||||
template: src=~/git/ansible_vagrant/templates/zabbix.psk.j2 dest=/etc/zabbix/zabbix.psk backup=yes owner=zabbix group=zabbix mode=0640
|
||||
notify:
|
||||
- restart zabbix-agent
|
23
tasks/install-zabbix-repo.yml
Normal file
23
tasks/install-zabbix-repo.yml
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
- name: Zabbix repó hozzáadása [Red Hat family]
|
||||
yum:
|
||||
name: https://repo.zabbix.com/zabbix/6.4/rhel/{{ ansible_distribution_major_version }}/x86_64/zabbix-release-6.4-1.el{{ ansible_distribution_major_version }}.noarch.rpm
|
||||
state: present
|
||||
disable_gpg_check: yes
|
||||
validate_certs: no
|
||||
when:
|
||||
- ansible_os_family == "RedHat"
|
||||
|
||||
- name: Zabbix repó hozzáadása [Debian]
|
||||
apt:
|
||||
deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian{{ ansible_distribution_version }}_all.deb
|
||||
state: present
|
||||
when:
|
||||
- ansible_distribution == "Debian"
|
||||
|
||||
- name: Zabbix repó hozzáadása [Ubuntu]
|
||||
apt:
|
||||
deb: https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu{{ ansible_distribution_version }}_all.deb
|
||||
state: present
|
||||
when:
|
||||
- ansible_distribution == "Ubuntu"
|
16
tasks/install-zabbix_agent.yml
Normal file
16
tasks/install-zabbix_agent.yml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
- name: Zabbix Agent telepítése [Red Hat family]
|
||||
yum:
|
||||
name: zabbix-agent
|
||||
state: latest
|
||||
update_cache: yes
|
||||
when:
|
||||
- ansible_os_family == "RedHat"
|
||||
|
||||
- name: Zabbix Agent telepítése [Debian family]
|
||||
apt:
|
||||
name: zabbix-agent
|
||||
state: latest
|
||||
update_cache: yes
|
||||
when:
|
||||
- ansible_os_family == "Debian"
|
6
tasks/service-zabbix_agent.yml
Normal file
6
tasks/service-zabbix_agent.yml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Zabbix Agent engedélyezése és elindítása
|
||||
service:
|
||||
name: zabbix-agent
|
||||
enabled: yes
|
||||
state: started
|
1
templates/zabbix.psk.j2
Normal file
1
templates/zabbix.psk.j2
Normal file
@ -0,0 +1 @@
|
||||
{{ psk_key }}
|
15
templates/zabbix_agentd.conf.j2
Normal file
15
templates/zabbix_agentd.conf.j2
Normal file
@ -0,0 +1,15 @@
|
||||
################################################################################
|
||||
{{ ansible_managed | comment }}
|
||||
################################################################################
|
||||
|
||||
PidFile=/run/zabbix/zabbix_agentd.pid
|
||||
LogFile=/var/log/zabbix/zabbix_agentd.log
|
||||
LogFileSize={{ ZBXLOGFILESIZE }}
|
||||
Server={{ ZBXSERVER }}
|
||||
ListenPort={{ ZBXAGENTPORT }}
|
||||
ListenIP={{ ZBXLISTENIP }}
|
||||
Hostname={{ inventory_hostname_short }}
|
||||
TLSConnect=psk
|
||||
TLSAccept=psk
|
||||
TLSPSKFile=/etc/zabbix/zabbix.psk
|
||||
TLSPSKIdentity={{ inventory_hostname_short }}
|
Loading…
Reference in New Issue
Block a user