Patroni-postgresql-etcd-minio: Difference between revisions
Jump to navigation
Jump to search
Created page with "<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: "10.10.0.40" 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..." |
No edit summary |
||
| Line 97: | Line 97: | ||
end | end | ||
</pre | </pre> | ||
Revision as of 07:40, 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: "10.10.0.40"
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" => "10.10.0.41",
"haproxy-02" => "10.10.0.42",
"haproxy-03" => "10.10.0.43" }.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" => "10.10.0.44",
"postgresql-02" => "10.10.0.45",
"postgresql-03" => "10.10.0.46" }.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: "10.10.0.47"
ca.vm.provider "virtualbox" do |vb|
vb.memory = 512
vb.cpus = 1
end
end
end