|
|
| Line 1: |
Line 1: |
| <pre>
| |
| Vagrant.configure("2") do |config|
| |
|
| |
|
| # MinIO
| |
| config.vm.define "minio" do |minio|
| |
| minio.vm.box = "ubuntu/jammy64"
| |
| minio.vm.hostname = "minio"
| |
| minio.vm.network "public_network", ip: "IP-minio"
| |
| minio.vm.provider "virtualbox" do |vb|
| |
| vb.memory = 1024
| |
| vb.cpus = 1
| |
| end
| |
| # provision для установки MinIO
| |
| minio.vm.provision "shell", inline: <<-SHELL
| |
| set -e
| |
| sudo apt-get update -y
| |
| sudo apt-get install -y wget
| |
|
| |
| # бинарник
| |
| wget -q https://dl.min.io/server/minio/release/linux-amd64/minio -O /tmp/minio
| |
| sudo install -m 0755 /tmp/minio /usr/local/bin/minio
| |
|
| |
| # системный пользователь и каталоги
| |
| id -u minio-user &>/dev/null || sudo useradd -r minio-user -s /usr/sbin/nologin
| |
| sudo mkdir -p /usr/local/share/minio
| |
| sudo chown -R minio-user:minio-user /usr/local/share/minio
| |
|
| |
| # TLS каталоги
| |
| sudo mkdir -p /etc/minio/certs
| |
| sudo chown -R minio-user:minio-user /etc/minio/certs
| |
|
| |
| # systemd unit
| |
| sudo tee /etc/systemd/system/minio.service >/dev/null <<'EOF'
| |
| [Unit]
| |
| Description=MinIO
| |
| After=network.target
| |
|
| |
| [Service]
| |
| User=minio-user
| |
| Group=minio-user
| |
| Environment="MINIO_VOLUMES=/usr/local/share/minio"
| |
| Environment="MINIO_OPTS=--console-address :9001"
| |
| Environment="MINIO_CERT_DIR=/etc/minio/certs"
| |
| ExecStart=/usr/local/bin/minio server $MINIO_VOLUMES $MINIO_OPTS
| |
| Restart=always
| |
| LimitNOFILE=65536
| |
|
| |
| [Install]
| |
| WantedBy=multi-user.target
| |
| EOF
| |
|
| |
| sudo systemctl daemon-reload
| |
| sudo systemctl enable --now minio
| |
| SHELL
| |
| end
| |
|
| |
| # HAProxy nodes
| |
| { "haproxy-01" => "IP-node1",
| |
| "haproxy-02" => "IP-node2",
| |
| "haproxy-03" => "IP-node3" }.each do |name, ip|
| |
| config.vm.define name do |node|
| |
| node.vm.box = "ubuntu/jammy64"
| |
| node.vm.hostname = name
| |
| node.vm.network "public_network", ip: ip
| |
| node.vm.provider "virtualbox" do |vb|
| |
| vb.memory = 512
| |
| vb.cpus = 1
| |
| end
| |
| end
| |
| end
| |
|
| |
| # PostgreSQL nodes
| |
| { "postgresql-01" => "IP-node4",
| |
| "postgresql-02" => "IP-node5",
| |
| "postgresql-03" => "IP-node6" }.each do |name, ip|
| |
| config.vm.define name do |node|
| |
| node.vm.box = "ubuntu/jammy64"
| |
| node.vm.hostname = name
| |
| node.vm.network "public_network", ip: ip
| |
| node.vm.provider "virtualbox" do |vb|
| |
| vb.memory = 2048
| |
| vb.cpus = 2
| |
| end
| |
| end
| |
| end
| |
|
| |
| # Certificate Authority
| |
| config.vm.define "ca" do |ca|
| |
| ca.vm.box = "ubuntu/jammy64"
| |
| ca.vm.hostname = "ca"
| |
| ca.vm.network "public_network", ip: "IP-node7"
| |
| ca.vm.provider "virtualbox" do |vb|
| |
| vb.memory = 512
| |
| vb.cpus = 1
| |
| end
| |
| end
| |
| end
| |
|
| |
| </pre>
| |