Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
747b0532d2 | |||
87b263fb3f | |||
b8eedc0846 | |||
0928a62232 | |||
634e7c9751 | |||
acebdef815 | |||
6c8ce80e06 | |||
9873b23ab2 | |||
58d89603f3 | |||
ea6d6b025a | |||
f98861086a | |||
b4ffdc2d6a | |||
00b45e672e | |||
1619b61256 | |||
4e5beafdb0 |
148
README.md
148
README.md
@ -1,7 +1,145 @@
|
||||
## 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.
|
||||
A Vagrantról írtam több cikket is a [honlapomon](https://msandor.hu/category/vagrant/).
|
||||
Ennek a vége az lett, hogy létrehozunk 4 különböző VM-et, ebben a felállásban:
|
||||
|
||||
| Hoszt név | IP cím | Oprendszer |
|
||||
| --- | --- | --- |
|
||||
| vm1 | 192.168.56.2 | CentOS 7 |
|
||||
| vm2 | 192.168.56.3 | Alma Linux 8 |
|
||||
| vm3 | 192.168.56.4 | Ubuntu 22.04 |
|
||||
| vm4 | 192.168.56.5 | Debian 11 |
|
||||
|
||||
Arra gondoltam, hogy ha már van egy `Vagrantfile`-om, jó alap lesz egy későbbi projekthez.
|
||||
|
||||
|
||||
Aztán belevágtam az Ansible [bemutatásába](https://msandor.hu/category/ansible/).
|
||||
|
||||
Bővült a fájlok listája:
|
||||
|
||||
```
|
||||
├── ansible.cfg
|
||||
├── inventory
|
||||
│ ├── group_vars
|
||||
│ │ └── all.yml
|
||||
│ └── inventory.yml
|
||||
├── log
|
||||
├── playbook
|
||||
│ └── install-zabbix-agent.yml
|
||||
├── tasks
|
||||
│ ├── configure-zabbix_agent.yml
|
||||
│ ├── install-zabbix_agent.yml
|
||||
│ └── service-zabbix_agent.yml
|
||||
└── templates
|
||||
└── zabbix_agentd.conf.j2
|
||||
```
|
||||
A végére elkészült ansible playbook feltelepítette és beállította a zabbix-agentet a 4 VM-re.
|
||||
|
||||
|
||||
Ez megágyazott a zabbix-servert bemutató [cikkeimnek](https://msandor.hu/category/zabbix/).
|
||||
Közben beláttam, hogy jobb lenne a zabbix szervernek is egy dedikált VM.
|
||||
A végére frissítettem 1-1 oprendszert is
|
||||
|
||||
Bővítettem a taskokat, feltelepíti a dockert is a playbook.
|
||||
Bővítettem a Vagrantfile-t is, ez pedig létrehozza a docker-compose.yml-t.
|
||||
A konténereket kézzel kell indítani az alábbi paranccsal (természetesen a zbxsrv-ben):
|
||||
```
|
||||
[vagrant@zbxsrv ~]$ sudo docker compose -f docker/zabbix-server/docker-compose.yml up -d
|
||||
[+] Running 4/4
|
||||
✔ Network zabbix-server_customnetwork Created 0.1s
|
||||
✔ Container zabbix-web Started 1.0s
|
||||
✔ Container zabbix-db Started 0.9s
|
||||
✔ Container zabbix-server Started 1.0s
|
||||
[vagrant@zbxsrv ~]$
|
||||
```
|
||||
|
||||
| Hoszt név | IP cím | Oprendszer |
|
||||
| --- | --- | --- |
|
||||
| vm1 | 192.168.56.2 | CentOS 7 |
|
||||
| vm2 | 192.168.56.3 | Alma Linux 8 |
|
||||
| vm3 | 192.168.56.4 | Ubuntu 22.04 |
|
||||
| vm4 | 192.168.56.5 | Debian 12 |
|
||||
| zbxsrv | 192.168.56.6 | Alma Linux 9 |
|
||||
|
||||
|
||||
Összefoglalva, ez lett a letölthető git repó:
|
||||
|
||||
```
|
||||
├── ansible.cfg
|
||||
├── changelog.md
|
||||
├── inventory
|
||||
│ ├── group_vars
|
||||
│ │ └── all.yml
|
||||
│ └── inventory.yml
|
||||
├── LICENSE
|
||||
├── log
|
||||
├── playbook
|
||||
│ └── install-zabbix-agent.yml
|
||||
├── README.md
|
||||
├── tasks
|
||||
│ ├── configure-zabbix_agent.yml
|
||||
│ ├── install-docker-repo.yml
|
||||
│ ├── install-docker.yml
|
||||
│ ├── install-zabbix_agent.yml
|
||||
│ ├── install-zabbix-repo.yml
|
||||
│ ├── service-docker.yml
|
||||
│ └── service-zabbix_agent.yml
|
||||
├── templates
|
||||
│ ├── zabbix_agentd.conf.j2
|
||||
│ └── zabbix.psk.j2
|
||||
└── Vagrantfile
|
||||
```
|
||||
|
||||
|
||||
## Hogyan kell letölteni?
|
||||
- Van git a gépeden? Ha nincs:
|
||||
- `$ sudo yum install git -y`
|
||||
|
||||
vagy
|
||||
- `$ sudo apt install git -y`
|
||||
|
||||
- Van már erre létrehozott mappád, pl `git`? Ha nincs:
|
||||
- `$ mkdir git`
|
||||
- `$ git clone https://git.msandor.hu/demo/ansible_vagrant.git`
|
||||
|
||||
amennyiben biztosra akarsz menni, válts a 8.3-es verzióra:
|
||||
|
||||
- `$ git checkout tags/v8.3`
|
||||
|
||||
|
||||
## Hogyan kell létrehozni az 5 VM-et?
|
||||
- Van vagrant a gépeden? Ha nincs a gyártó [weboldaláról](https://developer.hashicorp.com/vagrant/downloads) le tudod tölteni.
|
||||
|
||||
```
|
||||
$ cd ansible_vagrant
|
||||
$ vagrant up
|
||||
```
|
||||
|
||||
|
||||
## Hogyan kell lefuttatni az ansible playbookot?
|
||||
- Van ansible a gépeden? Ha nincs:
|
||||
- `$ sudo yum install ansible -y`
|
||||
|
||||
vagy
|
||||
- `$ sudo apt install ansible -y`
|
||||
|
||||
Ha nálad ezek nem működnek, nézd meg az ansible [weboldalát](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html).
|
||||
|
||||
|
||||
## Hogyan kell elindítani a zabbix konténereket (server, web, db)?
|
||||
Nem figyeltél korábban? :-)
|
||||
|
||||
```
|
||||
[msandor@msandorhp ~]$ cd git/ansible_vagrant/
|
||||
[vagrant@zbxsrv ~]$ sudo docker compose -f docker/zabbix-server/docker-compose.yml up -d
|
||||
[+] Running 4/4
|
||||
✔ Network zabbix-server_customnetwork Created 0.1s
|
||||
✔ Container zabbix-server Started 0.9s
|
||||
✔ Container zabbix-web Started 0.9s
|
||||
✔ Container zabbix-db Started 1.0s
|
||||
[vagrant@zbxsrv ~]$
|
||||
```
|
||||
|
||||
|
||||
## Hogyan érem el a zabbix szerver weboldalát?
|
||||
Indítsd el a kedvenc böngésződ, és nyisd meg ezt az URL-t: [http://192.168.56.6:888/](http://192.168.56.6:888/)
|
||||
|
101
Vagrantfile
vendored
101
Vagrantfile
vendored
@ -2,17 +2,20 @@ 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.box = "vshn/centos7" # nem hivatalos kiadás, de legalább nem 3 éves
|
||||
vm1.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "512"
|
||||
vb.cpus = 1
|
||||
end
|
||||
vm1.vm.synced_folder ".", "/vagrant", disabled: true
|
||||
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
|
||||
echo "192.168.56.2 vm1" >> /etc/hosts
|
||||
timedatectl set-timezone Europe/Budapest
|
||||
SHELL
|
||||
end
|
||||
|
||||
@ -20,15 +23,18 @@ Vagrant.configure("2") do |config|
|
||||
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.memory = "768"
|
||||
vb.cpus = 1
|
||||
end
|
||||
vm2.vm.synced_folder ".", "/vagrant", disabled: true
|
||||
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
|
||||
echo "192.168.56.3 vm2" >> /etc/hosts
|
||||
timedatectl set-timezone Europe/Budapest
|
||||
SHELL
|
||||
end
|
||||
|
||||
@ -39,44 +45,125 @@ Vagrant.configure("2") do |config|
|
||||
vb.memory = "512"
|
||||
vb.cpus = 1
|
||||
end
|
||||
vm3.vm.synced_folder ".", "/vagrant", disabled: true
|
||||
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
|
||||
echo "192.168.56.4 vm3" >> /etc/hosts
|
||||
timedatectl set-timezone Europe/Budapest
|
||||
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.box = "debian/bookworm64"
|
||||
vm4.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "512"
|
||||
vb.cpus = 1
|
||||
end
|
||||
vm4.vm.synced_folder ".", "/vagrant", disabled: true
|
||||
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
|
||||
echo "192.168.56.5 vm4" >> /etc/hosts
|
||||
timedatectl set-timezone Europe/Budapest
|
||||
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.box = "almalinux/9"
|
||||
zbxsrv.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = "512"
|
||||
vb.memory = "1024"
|
||||
vb.cpus = 1
|
||||
end
|
||||
zbxsrv.vm.synced_folder ".", "/vagrant", disabled: true
|
||||
zbxsrv.vm.provision "shell", inline: <<-SHELL
|
||||
yum install mc epel-release httpd net-tools -y
|
||||
yum install mc net-tools -y
|
||||
yum update -y
|
||||
systemctl enable --now httpd
|
||||
echo "zbxsrv" > /etc/hostname
|
||||
hostname -F /etc/hostname
|
||||
echo "192.168.56.6 zbxsrv" >> /etc/hosts
|
||||
timedatectl set-timezone Europe/Budapest
|
||||
mkdir -p /home/vagrant/docker/zabbix-server
|
||||
cat > /home/vagrant/docker/zabbix-server/docker-compose.yml << EOL
|
||||
version: "3"
|
||||
|
||||
volumes:
|
||||
DB:
|
||||
|
||||
services:
|
||||
zabbix-server:
|
||||
container_name: zabbix-server
|
||||
image: zabbix/zabbix-server-mysql:alpine-6.4-latest
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- 10051:10051
|
||||
restart: always
|
||||
environment:
|
||||
- DB_SERVER_HOST=zabbix-db
|
||||
- DB_SERVER_PORT=3306
|
||||
- MYSQL_DATABASE=zabbix
|
||||
- MYSQL_USER=zabbix
|
||||
- MYSQL_PASSWORD=P@G*LCxUAU96L5oq
|
||||
- ZBX_STARTPINGERS=3
|
||||
- ZBX_LISTENPORT=10051
|
||||
networks:
|
||||
customnetwork:
|
||||
ipv4_address: 192.168.151.2
|
||||
|
||||
zabbix-web:
|
||||
container_name: zabbix-web
|
||||
image: zabbix/zabbix-web-apache-mysql:alpine-6.4-latest
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- 888:8080
|
||||
restart: always
|
||||
environment:
|
||||
- DB_SERVER_HOST=zabbix-db
|
||||
- DB_SERVER_PORT=3306
|
||||
- MYSQL_DATABASE=zabbix
|
||||
- MYSQL_USER=zabbix
|
||||
- MYSQL_PASSWORD=P@G*LCxUAU96L5oq
|
||||
- ZBX_SERVER_HOST=zabbix-server
|
||||
- ZBX_SERVER_PORT=10051
|
||||
- ZBX_SERVER_NAME=zbxsrv
|
||||
- PHP_TZ=Europe/Budapest
|
||||
networks:
|
||||
customnetwork:
|
||||
ipv4_address: 192.168.151.3
|
||||
|
||||
zabbix-db:
|
||||
container_name: zabbix-db
|
||||
image: mariadb:10.6
|
||||
volumes:
|
||||
- DB:/var/lib/mysql
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
command: mysqld --collation-server=utf8mb4_bin
|
||||
restart: always
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=xQdr0iORWI8ZEY1F
|
||||
- MYSQL_DATABASE=zabbix
|
||||
- MYSQL_USER=zabbix
|
||||
- MYSQL_PASSWORD=P@G*LCxUAU96L5oq
|
||||
networks:
|
||||
customnetwork:
|
||||
ipv4_address: 192.168.151.4
|
||||
|
||||
networks:
|
||||
customnetwork:
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 192.168.151.0/24
|
||||
EOL
|
||||
SHELL
|
||||
end
|
||||
|
||||
|
15
changelog.md
15
changelog.md
@ -1,12 +1,25 @@
|
||||
# CHANGELOG
|
||||
|
||||
## 8.2
|
||||
- minden szerveren beállítja az időzónát (Europe/Budapest, 5 új sor a Vagrantfile-ban)
|
||||
- kikapcsoltam a /vagrant szinkronizálását, ebben a labor környezetben nincs rá szükség
|
||||
- nem volt elég 512 MB memória az Alma Linux 8-nak, felemeltem 768 MB-ra
|
||||
- nem volt elég 768 MB memória az Alma Linux 9-nek, felemeltem 1 GB-ra
|
||||
- a vm4 szervert Debian 11-ről 12-re cseréltem
|
||||
- a zbxsrv szervert CentOS 7-ről Alma Linux 9-re cseréltem
|
||||
- és a legfontosabb újítás: a dockert is telepíti a playbook
|
||||
- ebből az állapotból lett a [második](https://git.msandor.hu/demo/ansible_vagrant/src/tag/v8.2) publikus git repo is
|
||||
|
||||
## 8.1
|
||||
- új szerver létrehozásakor minden VM hostnevét beteszi az /etc/hosts fájlba (5 új sor a Vagrantfile-ban)
|
||||
|
||||
## 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
|
||||
- ebből az állapotból lett az [első]() publikus git repo is
|
||||
- ebből az állapotból lett az [első](https://git.msandor.hu/demo/ansible_vagrant/src/tag/v8.0) publikus git repo is
|
||||
|
||||
Erről írtam egy cikket [itt](https://msandor.hu/zabbix-labor-tuning-gittel/)
|
||||
|
||||
|
@ -4,8 +4,11 @@
|
||||
tasks:
|
||||
|
||||
- include: ~/git/ansible_vagrant/tasks/install-zabbix-repo.yml
|
||||
- include: ~/git/ansible_vagrant/tasks/install-docker-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/install-docker.yml
|
||||
- include: ~/git/ansible_vagrant/tasks/service-docker.yml
|
||||
- include: ~/git/ansible_vagrant/tasks/service-zabbix_agent.yml
|
||||
|
||||
handlers:
|
||||
|
10
tasks/install-docker-repo.yml
Normal file
10
tasks/install-docker-repo.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: Docker-ce repó hozzáadása
|
||||
yum_repository:
|
||||
name: "docker-ce-stable"
|
||||
description: "Docker CE Stable - $basearch"
|
||||
baseurl: "https://download.docker.com/linux/centos/$releasever/$basearch/stable"
|
||||
gpgcheck: yes
|
||||
enabled: yes
|
||||
gpgkey: "https://download.docker.com/linux/centos/gpg"
|
||||
when: ansible_hostname == "zbxsrv"
|
12
tasks/install-docker.yml
Normal file
12
tasks/install-docker.yml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
- name: Docker-ce telepítése
|
||||
yum:
|
||||
name:
|
||||
- docker-ce
|
||||
- docker-ce-cli
|
||||
- containerd.io
|
||||
- docker-buildx-plugin
|
||||
- docker-compose-plugin
|
||||
state: latest
|
||||
update_cache: yes
|
||||
when: ansible_hostname == "zbxsrv"
|
7
tasks/service-docker.yml
Normal file
7
tasks/service-docker.yml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
- name: Docker engedélyezése és elindítása
|
||||
service:
|
||||
name: docker
|
||||
enabled: yes
|
||||
state: started
|
||||
when: ansible_hostname == "zbxsrv"
|
Reference in New Issue
Block a user