Patroni-postgresql-etcd-minio: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 6: | Line 6: | ||
minio.vm.box = "ubuntu/jammy64" | minio.vm.box = "ubuntu/jammy64" | ||
minio.vm.hostname = "minio" | minio.vm.hostname = "minio" | ||
minio.vm.network "public_network", ip: " | minio.vm.network "public_network", ip: "IP-minio" | ||
minio.vm.provider "virtualbox" do |vb| | minio.vm.provider "virtualbox" do |vb| | ||
vb.memory = 1024 | vb.memory = 1024 | ||
| Line 56: | Line 56: | ||
# HAProxy nodes | # HAProxy nodes | ||
{ "haproxy-01" => " | { "haproxy-01" => "IP-node1", | ||
"haproxy-02" => " | "haproxy-02" => "IP-node2", | ||
"haproxy-03" => " | "haproxy-03" => "IP-node3" }.each do |name, ip| | ||
config.vm.define name do |node| | config.vm.define name do |node| | ||
node.vm.box = "ubuntu/jammy64" | node.vm.box = "ubuntu/jammy64" | ||
| Line 71: | Line 71: | ||
# PostgreSQL nodes | # PostgreSQL nodes | ||
{ "postgresql-01" => " | { "postgresql-01" => "IP-node4", | ||
"postgresql-02" => " | "postgresql-02" => "IP-node5", | ||
"postgresql-03" => " | "postgresql-03" => "IP-node6" }.each do |name, ip| | ||
config.vm.define name do |node| | config.vm.define name do |node| | ||
node.vm.box = "ubuntu/jammy64" | node.vm.box = "ubuntu/jammy64" | ||
| Line 89: | Line 89: | ||
ca.vm.box = "ubuntu/jammy64" | ca.vm.box = "ubuntu/jammy64" | ||
ca.vm.hostname = "ca" | ca.vm.hostname = "ca" | ||
ca.vm.network "public_network", ip: " | ca.vm.network "public_network", ip: "IP-node7" | ||
ca.vm.provider "virtualbox" do |vb| | ca.vm.provider "virtualbox" do |vb| | ||
vb.memory = 512 | vb.memory = 512 | ||
Revision as of 07:43, 25 September 2025
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