220 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			220 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			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 = "debian/bullseye64"
 | 
						|
    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
 | 
						|
      apt-get update && apt-get upgrade -y
 | 
						|
      apt-get clean
 | 
						|
      apt-get install mc apache2 -y
 | 
						|
      echo "vm1" > /etc/hostname
 | 
						|
      hostname -F /etc/hostname
 | 
						|
      echo "192.168.56.2 vm1" >> /etc/hosts
 | 
						|
      timedatectl set-timezone Europe/Budapest
 | 
						|
    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 = "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
 | 
						|
 | 
						|
  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.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.57.5"
 | 
						|
    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.57.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 = "almalinux/9"
 | 
						|
    zbxsrv.vm.provider "virtualbox" do |vb|
 | 
						|
      vb.memory = "1024"
 | 
						|
      vb.cpus = 1
 | 
						|
    end
 | 
						|
    zbxsrv.vm.synced_folder ".", "/vagrant", disabled: true
 | 
						|
    zbxsrv.vm.provision "shell", inline: <<-SHELL
 | 
						|
      yum install mc net-tools -y
 | 
						|
      yum update -y
 | 
						|
      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
 | 
						|
volumes:
 | 
						|
  DB:
 | 
						|
 | 
						|
services:
 | 
						|
  zabbix-server:
 | 
						|
    container_name: zabbix-server
 | 
						|
    image: zabbix/zabbix-server-mysql:alpine-6.4-latest
 | 
						|
    volumes:
 | 
						|
      - /etc/localtime:/etc/localtime:ro
 | 
						|
      - ./ssh_keys:/var/lib/zabbix/ssh_keys
 | 
						|
    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
 | 
						|
 | 
						|
  config.vm.define "proxy1" do |proxy1|
 | 
						|
    proxy1.vm.network "private_network", ip: "192.168.57.6"
 | 
						|
    proxy1.vm.box = "almalinux/9"
 | 
						|
    proxy1.vm.provider "virtualbox" do |vb|
 | 
						|
      vb.memory = "1024"
 | 
						|
      vb.cpus = 1
 | 
						|
    end
 | 
						|
    proxy1.vm.synced_folder ".", "/vagrant", disabled: true
 | 
						|
    proxy1.vm.provision "shell", inline: <<-SHELL
 | 
						|
      yum install mc net-tools -y
 | 
						|
      yum update -y
 | 
						|
      echo "proxy1" > /etc/hostname
 | 
						|
      hostname -F /etc/hostname
 | 
						|
      echo "192.168.57.6 proxy1" >> /etc/hosts
 | 
						|
      timedatectl set-timezone Europe/Budapest
 | 
						|
      mkdir -p /home/vagrant/docker/zabbix-proxy
 | 
						|
      mkdir -p /var/lib/docker/volumes/zabbix-proxy_ZBXPROXY_SECRETS/_data
 | 
						|
      cat > /var/lib/docker/volumes/zabbix-proxy_ZBXPROXY_SECRETS/_data/zabbix.psk << EOL
 | 
						|
977b74008c40fed130a410074df64a4fafd7244b64e163ec86a77e0e49323dbd
 | 
						|
EOL
 | 
						|
      cat > /home/vagrant/docker/zabbix-proxy/docker-compose.yml << EOL
 | 
						|
volumes:
 | 
						|
  ZBXPROXY_DB:
 | 
						|
  ZBXPROXY_SNMPTRAPS:
 | 
						|
  ZBXPROXY_SECRETS:
 | 
						|
 | 
						|
services:
 | 
						|
  zabbix-proxy:
 | 
						|
    container_name: zabbix-proxy
 | 
						|
    image: zabbix/zabbix-proxy-sqlite3:alpine-6.4-latest
 | 
						|
    volumes:
 | 
						|
      - /etc/localtime:/etc/localtime:ro
 | 
						|
      - ZBXPROXY_DB:/var/lib/zabbix/db_data
 | 
						|
      - ZBXPROXY_SNMPTRAPS:/var/lib/zabbix/snmptraps
 | 
						|
      - ZBXPROXY_SECRETS:/var/lib/zabbix/enc
 | 
						|
    ports:
 | 
						|
      - 10051:10051
 | 
						|
    restart: always
 | 
						|
    environment:
 | 
						|
      - ZBX_SERVER_HOST=192.168.56.6
 | 
						|
      - ZBX_SERVER_PORT=10051
 | 
						|
      - ZBX_HOSTNAME=proxy1
 | 
						|
      - ZBX_CONFIGFREQUENCY=60
 | 
						|
      - ZBX_TLSCONNECT=psk
 | 
						|
      - ZBX_TLSPSKFILE=/var/lib/zabbix/enc/zabbix.psk
 | 
						|
      - ZBX_TLSPSKIDENTITY=proxy1
 | 
						|
EOL
 | 
						|
    SHELL
 | 
						|
  end
 | 
						|
 | 
						|
end
 |