เบเบฒเบเบเปเบฒเบชเบฐเปเบซเบเบต
เบเปเปเบเบปเบเบกเบฒเบเบตเป, เบเบงเบฒเบกเบเบดเบเบปเบกเบเบญเบ Kubernetes เปเบเปเปเบเบตเบเปเบเบขเปเบฒเบเปเบงเบงเบฒ - เปเบเบเบเบฒเบเบซเบผเบฒเบเบเบงเปเบฒเปเบฅเบฐเบซเบผเบฒเบเบเปเบฒเบฅเบฑเบเบเบฐเบเบดเบเบฑเบเบกเบฑเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบชเปเบฒเบเบฑเบเบเบฑเบเบเบฑเบเบเบปเบเบเบตเปเบเบฑเปเบ Nomad: เบกเบฑเบเปเบกเปเบเบเบตเปเบฅเบตเบเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเบเบตเปเบเปเบฒเปเบเปเบงเบดเบเบตเปเบเปเปเบเบญเบทเปเบเปเบเบฒเบ HashiCorp, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, Vault เปเบฅเบฐ Consul, เปเบฅเบฐเปเบเบเบเบฒเบเบเบญเบเบเบปเบเปเบญเบเบเปเปเบชเบฑเบเบชเบปเบเปเบเบเปเบฒเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบ. เปเบญเบเบฐเบชเบฒเบเบเบตเปเบเบฐเบกเบตเบเปเบฒเปเบเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบ Nomad, เบชเบปเบกเบเบปเบเบชเบญเบ nodes เปเบเบปเปเบฒเปเบเปเบเบเบธเปเบก, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบฅเบงเบก Nomad เบเบฑเบ Gitlab.
เบขเบทเบเบเบปเบเบชเบญเบ
เบเบฝเบเปเบฅเบฑเบเบเปเบญเบเบเปเบฝเบงเบเบฑเบ bench เบเบฒเบเบเบปเบเบชเบญเบ: เบชเบฒเบกเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ virtual เบเบทเบเบเปเบฒเปเบเปเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบ 2 CPU, 4 RAM, 50 Gb SSD, united เปเบเบฑเบเปเบเบทเบญเบเปเบฒเบเบเปเบญเบเบเบดเปเบเบเบปเปเบงเปเบ. เบเบทเป เปเบฅเบฐเบเบตเปเบขเบนเป IP เบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ:
- nomad-livelinux-01: 172.30.0.5
- nomad-livelinux-02: 172.30.0.10
- consul-livelinux-01: 172.30.0.15
เบเบฒเบเบเบดเบเบเบฑเปเบ Nomad, Consul. เบเบฒเบเบชเปเบฒเบเบเบธเปเบก Nomad
เปเบซเปเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบทเปเบเบเบฒเบ. เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเบเบดเบเบเบฑเปเบเปเบกเปเบเบเปเบฒเบเบเบฒเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบญเบฐเบเบดเบเบฒเบเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบชเบปเบกเบเบนเบเบเบญเบเบเบปเบเบเบงเบฒเบก: เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเบเบฒเบเบชเบฐเบเบฑเบเบฎเปเบฒเบเปเบฅเบฐเบเบฑเบเบเบถเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบงเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเปเบเบฑเบ.
เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบถเบเบชเบฒเบซเบฒเบฅเบทเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบดเบเบชเบฐเบเบต, เปเบเบฒเบฐเบงเปเบฒเปเบเบเบฑเปเบเบเบญเบเบเบตเปเบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเปเบเบปเปเบฒเปเบเปเบเบเบชเปเบฒเบเปเบเบญเบฐเบเบฒเบเบปเบ.
เบเบงเบเปเบฎเบปเบฒเบกเบตเบชเบญเบ nomad nomad เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบฅเบงเบกเบเบงเบเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบเบเบธเปเบก, เปเบฅเบฐเปเบเบญเบฐเบเบฒเบเบปเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเบญเบเบเบฒเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเบธเปเบกเบญเบฑเบเบเบฐเปเบเบกเบฑเบ - เบชเปเบฒเบฅเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฒเบ Consul. เบเปเบงเบเปเบเบทเปเบญเบเบกเบทเบเบตเป, เบเบฒเบเบชเปเบฒเบเบเบธเปเบกเปเบฅเบฐเบเบฒเบเปเบเบตเปเบก nodes เบเบฒเบเปเบเบฑเบเบงเบฝเบเบเบตเปเบเปเบฒเบเบเบฒเบเบซเบผเบฒเบ: node Nomad เบเบตเปเบชเปเบฒเบเบเบถเปเบเบเบฐเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบปเบงเปเบเบ Consul, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบธเปเบก Nomad เบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบง. เบเบฑเปเบเบเบฑเปเบ, เปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบเบฑเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Consul, เบเบฑเปเบเบเปเบฒเบเบฒเบเบญเบฐเบเบธเบเบฒเบ http เบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฐเบเบฒเบเปเบงเบฑเบเปเบเบเป (เบกเบฑเบเบเปเปเบกเบตเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบตเปเบขเบนเปเบเบฒเบเบเบญเบ), เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบปเบงเปเบเบ Consul เบเปเบงเบเบเบปเบเปเบญเบเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ Nomad, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบ Nomad เปเบเบปเปเบฒเบเบฑเปเบ.
เบเบฒเบเบเบดเบเบเบฑเปเบเปเบเบทเปเบญเบเบกเบทเบเบญเบ HashiCorp เปเบกเปเบเบเปเบฒเบเบเบฒเบเบซเบผเบฒเบ: เปเบเบเบเบทเปเบเบเบฒเบเปเบฅเปเบง, เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเปเบฒเบเปเบเบฅเป binary เปเบเบซเบฒ bin directory, เบเบฑเปเบเบเปเบฒเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเปเบเบทเปเบญเบเบกเบท, เปเบฅเบฐเบชเปเบฒเบเปเบเบฅเปเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบญเบเบกเบฑเบ.
เบเบฒเบงเปเบซเบฅเบเปเบเบฅเป Consul binary เปเบฅเบฐ unpack เบกเบฑเบเปเบเบปเปเบฒเปเบเปเบ home directory เบเบญเบเบเบนเปเปเบเป:
root@consul-livelinux-01:~# wget https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_linux_amd64.zip
root@consul-livelinux-01:~# unzip consul_1.5.0_linux_amd64.zip
root@consul-livelinux-01:~# mv consul /usr/local/bin/
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบชเบญเบ consul เบเปเบญเบกเบเบตเปเบเบฐเปเบฎเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบตเปเบกเปเบเบตเบก.
เปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ Consul, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบ keygen:
root@consul-livelinux-01:~# consul keygen
เบเปเปเบซเปเบเปเบฒเบงเปเบเบชเบนเปเบเบฒเบเบเบฑเปเบเบเปเบฒ Consul, เบชเปเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบต /etc/consul.d/ เบเบตเปเบกเบตเปเบเบเบชเปเบฒเบเบเปเปเปเบเบเบตเป:
/etc/consul.d/
โโโ bootstrap
โ โโโ config.json
เปเบเปเบฅเบเบฐเบเปเบฅเบต bootstrap เบเบฐเบกเบตเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ config.json - เปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเบเบปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ Consul. เปเบเบทเปเบญเปเบเบเบญเบเบกเบฑเบ:
{
"bootstrap": true,
"server": true,
"datacenter": "dc1",
"data_dir": "/var/consul",
"encrypt": "your-key",
"log_level": "INFO",
"enable_syslog": true,
"start_join": ["172.30.0.15"]
}
เบเปเปเบซเปเปเบเบดเปเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบปเปเบเบเปเปเบฅเบฐเบเบงเบฒเบกเบซเบกเบฒเบเบเบญเบเบกเบฑเบเปเบเบเบเปเบฒเบเบซเบฒเบ:
- bootstrap: เบเบงเบฒเบกเบเบดเบ. เบเบงเบเปเบฎเบปเบฒเปเบเบตเบเปเบเปเบเบฒเบเปเบเบตเปเบกเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบญเบเปเบเบเปเบซเบกเปเบเปเบฒเบเบงเบเปเบเบปเบฒเปเบเบทเปเบญเบกเบเปเป. เบเปเบญเบเบชเบฑเบเปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบเบตเปเบเบญเบเปเบเบดเบเบเปเบฒเบเบงเบเบเบตเปเปเบเปเบเบญเบเบเบญเบเบเปเปเบเบตเปเบเบฒเบเบงเปเบฒเบเบฐเบขเบนเปเบเบตเปเบเบตเป.
- เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ: เบเบงเบฒเบกเบเบดเบ. เปเบเบตเบเปเบเปเปเปเบเปเบเบตเบเปเบงเบต. Consul เปเบเปเบเบทเปเบญเบ virtual เบเบตเปเบเบฐเปเบฎเบฑเบเบซเบเปเบฒเบเบตเปเปเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบฅเบฐเปเบกเปเบเบปเบเบเบฝเบงเปเบเบเบฑเบเบเบธเบเบฑเบ, VM เบเบญเบ Nomad เบเบฐเปเบเบฑเบเบฅเบนเบเบเปเบฒ.
- เบชเบนเบโเบเปเปโเบกเบนเบ: dc1. เบฅเบฐเบเบธเบเบทเปเบเบญเบเบชเบนเบเบเปเปเบกเบนเบเปเบเบทเปเบญเบชเปเบฒเบเบเบธเปเบก. เบกเบฑเบเบเปเบญเบเบเบทเบเบฑเบเปเบเบเบฑเบเบฅเบนเบเบเปเบฒ เปเบฅเบฐเปเบเบตเบเปเบงเบต.
- เบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ: เบเบฐเปเบเบเบญเบเปเบเบปเปเบฒ. เบเบตเปเบชเปเบฒเบเบฑเบ, เปเบเบดเปเบเบเบฑเบเบเบฐเบเปเบญเบเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบเปเบฅเบฐเบเบปเบเบเบฑเบเบฅเบนเบเบเปเบฒเปเบฅเบฐเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบฑเบเบซเบกเบปเบ. เบชเปเบฒเบเบเบถเปเบเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบ consul keygen.
- start_join. เปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบตเปเบเบญเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบตเปเบขเบนเป IP เบเบตเปเบเบฐเปเบเบทเปเบญเบกเบเปเป. เปเบเบเบฑเบเบเบธเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเปเบซเปเบเบฝเบเปเบเปเบเบตเปเบขเบนเปเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เปเบเบเบธเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ consul เปเบเบเปเบเปเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ:
root@consul-livelinux-01:~# /usr/local/bin/consul agent -config-dir /etc/consul.d/bootstrap -ui
เบเบตเปเปเบกเปเบเบงเบดเบเบตเบเบตเปเบเบตเบเบตเปเบเบฐเบเบตเบเบฑเบเปเบเบเบฑเบเบเบธเบเบฑเบ, เปเบเบงเปเบเบเปเปเบเบฒเบก, เบเปเบฒเบเบเปเปเบชเบฒเบกเบฒเบเปเบเปเบงเบดเบเบตเบเบฒเบเบเบตเปเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบเบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบตเปเบเบฑเบเปเบเบ. เบกเบฒเบชเปเบฒเบเปเบเบฅเปเบเปเบฅเบดเบเบฒเบเปเบเบทเปเบญเบเบฑเบเบเบฒเบ Consul เบเปเบฒเบ systemd:
root@consul-livelinux-01:~# nano /etc/systemd/system/consul.service
เปเบเบทเปเบญเปเบเบเบญเบเปเบเบฅเป consul.service:
[Unit]
Description=Consul Startup process
After=network.target
[Service]
Type=simple
ExecStart=/bin/bash -c '/usr/local/bin/consul agent -config-dir /etc/consul.d/bootstrap -ui'
TimeoutStartSec=0
[Install]
WantedBy=default.target
เปเบเบตเบเบเบปเบงเบเบปเบเบชเบธเบเบเปเบฒเบ systemctl:
root@consul-livelinux-01:~# systemctl start consul
เปเบซเปเบเบงเบเปเบเบดเปเบ: เบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเปเบฒเปเบเบตเบเบเบฒเบ, เปเบฅเบฐเปเบเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเปเบฒเบชเบฑเปเบเบเบญเบเบชเบฐเบกเบฒเบเบดเบเบเบปเบเบชเบธเบ, เบเบงเบเปเบฎเบปเบฒเบเบงเบเบเบฐเปเบซเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ:
root@consul-livelinux:/etc/consul.d# consul members
consul-livelinux 172.30.0.15:8301 alive server 1.5.0 2 dc1 <all>
เบเบฑเปเบเบเบญเบเบเปเปเปเบ: เบเบฒเบเบเบดเบเบเบฑเปเบ Nginx เปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒ proxying เปเบฅเบฐเบเบฒเบเบญเบฐเบเบธเบเบฒเบ http. เบเบงเบเปเบฎเบปเบฒเบเบดเบเบเบฑเปเบ nginx เบเปเบฒเบเบเบปเบงเบเบฑเบเบเบฒเบเบเบธเบเปเบฅเบฐเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต /etc/nginx/sites-enabled เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ consul.conf เบเบตเปเบกเบตเปเบเบทเปเบญเบซเบฒเบเปเปเปเบเบเบตเป:
upstream consul-auth {
server localhost:8500;
}
server {
server_name consul.doman.name;
location / {
proxy_pass http://consul-auth;
proxy_set_header Host $host;
auth_basic_user_file /etc/nginx/.htpasswd;
auth_basic "Password-protected Area";
}
}
เบขเปเบฒเบฅเบทเบกเบชเปเบฒเบเปเบเบฅเป .htpasswd เปเบฅเบฐเบชเปเบฒเบเบเบทเปเบเบนเปเปเบเปเปเบฅเบฐเบฅเบฐเบซเบฑเบเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบกเบฑเบ. เบฅเบฒเบโเบเบฒเบโเบเบตเปโเปเบกเปเบโเบเปเบญเบโเบเบฒเบโเปเบเบทเปเบญโเบงเปเบฒโเบเบฐโเบเบฒเบโเปเบงเบฑเบโเปเบโเบโเปโเปเบกเปเบโเบเปเปโเบกเบตโเบชเปเบฒโเบฅเบฑเบโเบเบธเบโเบเบปเบโเบเบตเปโเบฎเบนเปโเบเบฑเบโเปเบโเปเบกเบโเบเบญเบโเบเบงเบโเปเบฎเบปเบฒโ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เปเบกเบทเปเบญเบเบฑเปเบเบเปเบฒ Gitlab, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฐเบเบดเปเบกเบเบตเป - เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบชเบฒเบกเบฒเบเบเปเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบ Nomad. เปเบเปเบเบเบเบฒเบเบเบญเบเบเปเบญเบ, เบเบฑเบ Gitlab เปเบฅเบฐ Nomad เบกเบตเบเบฝเบเปเบเปเบขเบนเปเปเบเปเบงเบฑเบเบชเบตเบเบตเปเปเบเบปเปเบฒ, เบเบฑเปเบเบเบฑเปเบเบเปเปเบกเบตเบเบฑเบเบซเบฒเบเบฑเปเบเบเปเบฒเบงเบขเบนเปเบเบตเปเบเบตเป.
เปเบเบชเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบเบงเบเปเบฎเบปเบฒเบเบดเบเบเบฑเปเบเบเบปเบงเปเบเบ Consul เบเบฒเบกเบเปเบฒเปเบเบฐเบเปเบฒเบเปเปเปเบเบเบตเป. เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเปเบฅเบทเปเบกเบเบทเบเบเบฑเปเบเบเบญเบเบเปเบงเบเปเบเบฅเป binary:
root@nomad-livelinux-01:~# wget https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_linux_amd64.zip
root@nomad-livelinux-01:~# unzip consul_1.5.0_linux_amd64.zip
root@nomad-livelinux-01:~# mv consul /usr/local/bin/
เปเบเบเบเบฒเบเบเบฝเบเบเบฝเบเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเปเบเปเบฒเบเบกเบฒ, เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบชเปเบฒเบฅเบฑเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ /etc/consul.d เบเบตเปเบกเบตเปเบเบเบชเปเบฒเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
/etc/consul.d/
โโโ client
โ โโโ config.json
เปเบเบทเปเบญเปเบเบเบญเบเปเบเบฅเป config.json:
{
"datacenter": "dc1",
"data_dir": "/opt/consul",
"log_level": "DEBUG",
"node_name": "nomad-livelinux-01",
"server": false,
"encrypt": "your-private-key",
"domain": "livelinux",
"addresses": {
"dns": "127.0.0.1",
"https": "0.0.0.0",
"grpc": "127.0.0.1",
"http": "127.0.0.1"
},
"bind_addr": "172.30.0.5", # ะปะพะบะฐะปัะฝัะน ะฐะดัะตั ะฒะผ
"start_join": ["172.30.0.15"], # ัะดะฐะปะตะฝะฝัะน ะฐะดัะตั ะบะพะฝััะป ัะตัะฒะตัะฐ
"ports": {
"dns": 53
}
เบเบฑเบโเบเบถเบโเบเบฒเบโเบเปเบฝเบโเปเบเบโเปเบฅเบฐโเปเบโเบเบตเปโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเปเบเบฅโเปโเบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโ, เปเบเบทเปเบญโเปเบโเบเบญเบโเบกเบฑเบโ:
/etc/systemd/system/consul.service:
[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
[Service]
User=root
Group=root
ExecStart=/usr/local/bin/consul agent -config-dir=/etc/consul.d/client
ExecReload=/usr/local/bin/consul reload
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
เบเบงเบเปเบฎเบปเบฒเปเบเบตเบเบเบปเบงเบเบปเบเบชเบธเบเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ. เปเบเบเบฑเบเบเบธเบเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฒเบเปเบเบตเบเบเบปเบง, เบเบงเบเปเบฎเบปเบฒเบเบงเบเบเบฐเปเบซเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเปเบเบชเบฐเบกเบฒเบเบดเบ nsul. เบเบตเปเบเบฐเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบกเบฑเบเปเบเปเปเบเบทเปเบญเบกเบเปเปเบขเปเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบปเบเบเบฑเบเบเบธเปเบกเบฅเบนเบเบเปเบฒ. เปเบฎเบฑเบเบเปเปเบฒเบญเบตเบเบเบฑเปเบเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเบชเบญเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเบดเบเบเบฑเปเบเปเบฅเบฐเบเปเบฒเบซเบเบปเบเบเปเบฒ Nomad.
เบเบฒเบเบเบดเบเบเบฑเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเบเบญเบ Nomad เปเบกเปเบเปเบเปเบเบทเบเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบเปเบญเบเบฐเบชเบฒเบเบเบฒเบเบเบฒเบเบเบญเบเบกเบฑเบ. เบกเบตเบชเบญเบเบงเบดเบเบตเบเบฒเบเบเบดเบเบเบฑเปเบเปเบเบเบเบฑเปเบเปเบเบตเบก: เบเบฒเบเบเบฒเบงเปเบซเบฅเบเปเบเบฅเปเบเบนเปเปเบฅเบฐเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเบเบฒเบเปเบซเบผเปเบ. เบเปเบญเบเบเบฐเปเบฅเบทเบญเบเบงเบดเบเบตเบเปเบฒเบญเบดเบ.
ะัะธะผะตัะฐะฝะธะต: เปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบเปเบฒเบฅเบฑเบเบเบฑเบเบเบฐเบเบฒเบขเปเบฒเบเปเบงเบงเบฒ, เบเบฒเบเบเบฑเบเบเบธเบเปเบซเบกเปเบกเบฑเบเบเบฐเบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒ. เบเบฒเบเบเบตเบชเบฐเบเบฑเบเปเบซเบกเปเบเบฐเบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒเปเบกเบทเปเบญเบเบปเบเบเบงเบฒเบกเบเบตเปเบชเปเบฒเปเบฅเบฑเบ. เบเบฑเปเบเบเบฑเปเบ, เบเปเบญเบเบเบตเปเบเบฐเบญเปเบฒเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบฐเบเปเบฒเปเบซเปเบเบงเบเปเบเบดเปเบเบชเบฐเบเบฑเบเบเบฐเบเบธเบเบฑเบเบเบญเบ Nomad เปเบเบเบฑเบเบเบธเบเบฑเบเปเบฅเบฐเบเบฒเบงเปเบซเบผเบเบกเบฑเบ.
root@nomad-livelinux-01:~# wget https://releases.hashicorp.com/nomad/0.9.1/nomad_0.9.1_linux_amd64.zip
root@nomad-livelinux-01:~# unzip nomad_0.9.1_linux_amd64.zip
root@nomad-livelinux-01:~# mv nomad /usr/local/bin/
root@nomad-livelinux-01:~# nomad -autocomplete-install
root@nomad-livelinux-01:~# complete -C /usr/local/bin/nomad nomad
root@nomad-livelinux-01:~# mkdir /etc/nomad.d
เบซเบผเบฑเบเบเบฒเบ unpacking, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบ Nomad binary file เบเปเปเบฒเบซเบเบฑเบ 65 MB - เบกเบฑเบเบเปเบญเบเบเบทเบเบเปเบฒเบเปเบ /usr/local/bin.
เปเบซเปเบชเปเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเปเบกเบนเบเบชเปเบฒเบฅเบฑเบ Nomad เปเบฅเบฐเปเบเปเปเบเปเบเบฅเปเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบญเบเบกเบฑเบ (เบชเปเบงเบเบซเบผเบฒเบเบกเบฑเบเบญเบฒเบเบเบฐเบเปเปเบกเบตเบขเบนเปเปเบเบเบญเบเบเบปเปเบ):
root@nomad-livelinux-01:~# mkdir --parents /opt/nomad
root@nomad-livelinux-01:~# nano /etc/systemd/system/nomad.service
เบงเบฒเบเปเบเบงเบเปเปเปเบเบเบตเปเปเบชเปเบเปเบญเบเบเบฑเปเบ:
[Unit]
Description=Nomad
Documentation=https://nomadproject.io/docs/
Wants=network-online.target
After=network-online.target
[Service]
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/nomad agent -config /etc/nomad.d
KillMode=process
KillSignal=SIGINT
LimitNOFILE=infinity
LimitNPROC=infinity
Restart=on-failure
RestartSec=2
StartLimitBurst=3
StartLimitIntervalSec=10
TasksMax=infinity
[Install]
WantedBy=multi-user.target
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบงเบเปเบฎเบปเบฒเบเปเปเบฎเบตเบเบฎเปเบญเบเบเบตเปเบเบฐเปเบเบตเบเบเบปเบง nomad - เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเปเปเบเปเบชเปเบฒเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบกเบฑเบ:
root@nomad-livelinux-01:~# mkdir --parents /etc/nomad.d
root@nomad-livelinux-01:~# chmod 700 /etc/nomad.d
root@nomad-livelinux-01:~# nano /etc/nomad.d/nomad.hcl
root@nomad-livelinux-01:~# nano /etc/nomad.d/server.hcl
เปเบเบเบชเปเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบชเบธเบเบเปเบฒเบเบเบฐเปเบเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
/etc/nomad.d/
โโโ nomad.hcl
โโโ server.hcl
เปเบเบฅเป nomad.hcl เบเบงเบเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเปเปเบเบเบตเป:
datacenter = "dc1"
data_dir = "/opt/nomad"
เปเบเบทเปเบญเปเบเบเบญเบเปเบเบฅเป server.hcl:
server {
enabled = true
bootstrap_expect = 1
}
consul {
address = "127.0.0.1:8500"
server_service_name = "nomad"
client_service_name = "nomad-client"
auto_advertise = true
server_auto_join = true
client_auto_join = true
}
bind_addr = "127.0.0.1"
advertise {
http = "172.30.0.5"
}
client {
enabled = true
}
เบขเปเบฒเบฅเบทเบกเบเปเบฝเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเบชเบญเบ - เบขเบนเปเบเบตเปเบเบฑเปเบเบเปเบฒเบเบเบฐเบเปเบญเบเบเปเบฝเบเบเปเบฒเบเบญเบเบเปเบฒเบชเบฑเปเบ http.
เบชเบดเปเบเบชเบธเบเบเปเบฒเบเปเบเบเบฑเปเบเบเบญเบเบเบตเปเปเบกเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ Nginx เบชเปเบฒเบฅเบฑเบ proxying เปเบฅเบฐเบเบฑเปเบเบเปเบฒเบเบฒเบเบญเบฐเบเบธเบเบฒเบ http. เปเบเบทเปเบญเปเบเบเบญเบเปเบเบฅเป nomad.conf:
upstream nomad-auth {
server 172.30.0.5:4646;
}
server {
server_name nomad.domain.name;
location / {
proxy_pass http://nomad-auth;
proxy_set_header Host $host;
auth_basic_user_file /etc/nginx/.htpasswd;
auth_basic "Password-protected Area";
}
}
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฐเบเบฒเบเปเบงเบฑเบเปเบเบเปเปเบเบเบเปเบฒเบเปเบเบทเบญเบเปเบฒเบเบเบฒเบเบเบญเบ. เปเบเบทเปเบญเบกเบเปเป เปเบฅเบฐเปเบเบเบตเปเปเปเบฒเปเบเบตเบเปเบงเบต:
เบฎเบนเบเบเบฒเบ 1. เบฅเบฒเบเบเบทเปเปเบเบตเบเปเบงเบตเปเบเบเบธเปเบก Nomad
เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบฑเบเบชเบญเบเบเบทเบเบชเบฐเปเบเบเบขเปเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบปเบเปเบเบเบฐเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบซเบฑเบเบชเบดเปเบเบเบฝเบงเบเบฑเบเปเบเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบเบเปเบฒเบชเบฑเปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบ nomad:
เบฎเบนเบเบเบฒเบ 2. เบเบปเบเปเบเปเบฎเบฑเบเบเบญเบเบเปเบฒเบชเบฑเปเบเบชเบฐเบเบฒเบเบฐ nomad nomad
เบเบปเบเบชเบธเบเปเบกเปเบเบซเบเบฑเบ? เบเปเปเบซเปเปเบเบดเปเบ. เปเบเบเบตเปเบเบฐเบเบฒเบเบเบงเบเบเบธเบก Consul, เปเบเบซเบฒเบซเบเปเบฒ nodes:
เบฎเบนเบเบเบฒเบ 3. เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบ nodes เปเบเบเบธเปเบก Consul
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบกเบต Nomad เบเบฐเบเบฝเบกเปเบฎเบฑเบเบงเบฝเบเบฎเปเบงเบกเบเบฑเบเบเบฑเบเบเบปเบเบชเบธเบ. เปเบเบเบฑเปเบเบเบญเบเบชเบธเบเบเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบซเบฒเบชเปเบงเบเบเบตเปเบกเปเบงเบเบเบทเปเบ: เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเบฑเบเบชเบปเปเบเบเบนเปเบเบญเบเปเบเบเปเบเบต Docker เบเบฒเบ Gitlab เปเบ Nomad, เปเบฅเบฐเบเบฑเบเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเปเบเบเปเบเบฑเปเบเบญเบทเปเบเปเบเบญเบเบกเบฑเบ.
เบเบฒเบเบชเปเบฒเบ Gitlab Runner
เปเบเบทเปเบญเบเปเบฒเปเบเปเบฎเบนเบเบเบฒเบ docker เบเบฑเบ Nomad, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเป runner เปเบเบเบเปเบฒเบเบซเบฒเบเบเบตเปเบกเบตเปเบเบฅเป Nomad binary เบเบฒเบเปเบ (เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเบฑเบเปเบเบเปเบซเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบญเบทเปเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ Hashicorp - เบชเปเบงเบเบเบธเบเบเบปเบเบเบงเบเปเบเบปเบฒเปเบเบฑเบเปเบเบฅเปเบเบนเปเบเบฝเบง). เบญเบฑเบเปเบซเบผเบเบกเบฑเบเปเบชเปเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฑเบเปเบฅเปเบ. เปเบซเปเบชเปเบฒเบ Dockerfile เบเปเบฒเบเปเบชเปเบฒเบฅเบฑเบเบกเบฑเบเบเปเบงเบเปเบเบทเปเบญเบซเบฒเบเปเปเปเบเบเบตเป:
FROM alpine:3.9
RUN apk add --update --no-cache libc6-compat gettext
COPY nomad /usr/local/bin/nomad
เปเบเปเบเบเบเบฒเบเบเบฝเบงเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบ .gitlab-ci.yml:
variables:
DOCKER_IMAGE: nomad/nomad-deploy
DOCKER_REGISTRY: registry.domain.name
stages:
- build
build:
stage: build
image: ${DOCKER_REGISTRY}/nomad/alpine:3
script:
- tag=${DOCKER_REGISTRY}/${DOCKER_IMAGE}:latest
- docker build --pull -t ${tag} -f Dockerfile .
- docker push ${tag}
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบกเบตเบฎเบนเบเบเบฒเบเบเบตเปเบกเบตเบขเบนเปเบเบญเบเบเบฑเบเปเบฅเปเบ Nomad เปเบ Gitlab Registry, เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบซเบฒเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบเปเบเบเบเบฒเบเปเบเบเบเบปเบ, เบชเปเบฒเบ Pipeline เปเบฅเบฐเบเปเบฒเบซเบเบปเบเบเปเบฒเบงเบฝเบ Nomad เบเบญเบ Nomad.
เบเบฒเบโเบเบฑเปเบโเบเปเบฒโเปเบเบโเบเบฒเบโ
เปเบซเปเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเปเบเบฅเปเบเบญเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบ Nomad. เปเบเบเบเบฒเบเบเบญเบเบเปเบญเบเปเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเบฐเปเบเบฑเบเบเบทเปเบเบเบฒเบเบเบตเปเบเปเบญเบเบเปเบฒเบ: เบกเบฑเบเบเบฐเบเบฐเบเบญเบเบเปเบงเบเบงเบฝเบเบเบฒเบเบซเบเบถเปเบ. เปเบเบทเปเบญเปเบเบเบญเบ .gitlab-ci เบเบฐเปเบเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
variables:
NOMAD_ADDR: http://nomad.address.service:4646
DOCKER_REGISTRY: registry.domain.name
DOCKER_IMAGE: example/project
stages:
- build
- deploy
build:
stage: build
image: ${DOCKER_REGISTRY}/nomad-runner/alpine:3
script:
- tag=${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${CI_COMMIT_SHORT_SHA}
- docker build --pull -t ${tag} -f Dockerfile .
- docker push ${tag}
deploy:
stage: deploy
image: registry.example.com/nomad/nomad-runner:latest
script:
- envsubst '${CI_COMMIT_SHORT_SHA}' < project.nomad > job.nomad
- cat job.nomad
- nomad validate job.nomad
- nomad plan job.nomad || if [ $? -eq 255 ]; then exit 255; else echo "success"; fi
- nomad run job.nomad
environment:
name: production
allow_failure: false
when: manual
เบเบตเปเบเบตเป, เบเบฒเบเบเบดเบเบเบฑเปเบเปเบเบตเบเบเบถเปเบเบเปเบงเบเบเบปเบเปเบญเบ, เปเบเปเบเปเบฒเบเบชเบฒเบกเบฒเบ configure เบกเบฑเบเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบทเปเบญเปเบเบเบญเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบเบเบเบฒเบ. เบเปเปเบเบฐเบเบญเบเบเปเบงเบเบชเบญเบเบเบฑเปเบเบเบญเบ: เบเบฒเบเบเบฐเบเบญเบเบฎเบนเบเบเบฒเบเปเบฅเบฐเบเบฒเบเบเปเบฒเปเบเปเบเปเบเบฑเบ nomad. เปเบเบเบฑเปเบเบเบญเบเบเปเบฒเบญเบดเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบญเบเบฎเบนเบเบเบฒเบ docker เปเบฅเบฐเบเบนเปเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบ Registry เบเบญเบเบเบงเบเปเบฎเบปเบฒ, เปเบฅเบฐเปเบเบเบฑเปเบเบเบตเบชเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบตเบเบเบปเบงเบงเบฝเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบ Nomad.
job "monitoring-status" {
datacenters = ["dc1"]
migrate {
max_parallel = 3
health_check = "checks"
min_healthy_time = "15s"
healthy_deadline = "5m"
}
group "zhadan.ltd" {
count = 1
update {
max_parallel = 1
min_healthy_time = "30s"
healthy_deadline = "5m"
progress_deadline = "10m"
auto_revert = true
}
task "service-monitoring" {
driver = "docker"
config {
image = "registry.domain.name/example/project:${CI_COMMIT_SHORT_SHA}"
force_pull = true
auth {
username = "gitlab_user"
password = "gitlab_password"
}
port_map {
http = 8000
}
}
resources {
network {
port "http" {}
}
}
}
}
}
เบเบฐโเบฅเบธโเบเบฒโเบชเบฑเบโเปเบเบโเบงเปเบฒโเบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบกเบตโเบเบฒเบโเบเบปเบโเบเบฐโเบเบฝเบโเปเบญโเบเบฐโเบเบปเบโเปเบฅเบฐโเบชเบปเบโเบเบปเบโเบชเปเบฒโเปเบฅเบฑเบโเบเบฒเบโเบเบถเบโเบฎเบนเบโเบเบฒเบ docker เปเบเบฑเบโเบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเปเบฒโเปเบเบฑเบโเบเปเบญเบโเปเบเบปเปเบฒโเบชเบนเปโเบฅเบฐโเบเบปเบโเบกเบฑเบโ. เบเบฒเบเปเบเปเปเบเบเบตเปเบเบตเบเบตเปเบชเบธเบเปเบเบเปเบฅเบฐเบเบตเบเบตเปเปเบกเปเบเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบเบปเบเปเบฅเบฐเบฅเบฐเบซเบฑเบเบเปเบฒเบเปเบเบปเปเบฒเปเบเปเบ Vault เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบฑเบ Nomad. Nomad เปเบเบเบเบทเปเบเบเบฒเบเปเบฅเปเบงเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ Vault. เปเบเปเบเปเบฒเบญเบดเบ, เปเบซเปเบเบดเบเบเบฑเปเบเบเบฐเปเบเบเบฒเบเบเบตเปเบเปเบฒเปเบเบฑเบเบชเปเบฒเบฅเบฑเบ Nomad เปเบ Vault เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ; เบเบงเบเปเบเบปเบฒเบชเบฒเบกเบฒเบเบเบฒเบงเปเบซเบฅเบเปเบเป:
# Download the policy and token role
$ curl https://nomadproject.io/data/vault/nomad-server-policy.hcl -O -s -L
$ curl https://nomadproject.io/data/vault/nomad-cluster-role.json -O -s -L
# Write the policy to Vault
$ vault policy write nomad-server nomad-server-policy.hcl
# Create the token role with Vault
$ vault write /auth/token/roles/nomad-cluster @nomad-cluster-role.json
เปเบเบเบฑเบเบเบธเบเบฑเบ, เปเบเปเบชเปเบฒเบเบเบฐเปเบเบเบฒเบเบเบตเปเบเปเบฒเปเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบตเปเบกเบเบฒเบเปเบเบทเปเบญเบกเปเบเบเบเบฑเบ Vault เปเบเบเบฅเบฑเบญเบเบงเบฝเบเปเบเปเบเบฅเป job.nomad:
vault {
enabled = true
address = "https://vault.domain.name:8200"
token = "token"
}
เบเปเบญเบเปเบเปเบเบฒเบเบญเบฐเบเบธเบเบฒเบเปเบเบ token เปเบฅเบฐเบฅเบปเบเบเบฐเบเบฝเบเบกเบฑเบเปเบเบเบเบปเบเบเบตเปเบเบตเป, เบเบฑเบเบกเบตเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเบฐเบฅเบฐเบเบธ token เปเบเบฑเบเบเบปเบงเปเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบฅเบตเปเบกเบเบปเปเบเบเบปเบงเปเบเบ nomad:
$ VAULT_TOKEN=<token> nomad agent -config /path/to/config
เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเปเบเบฐเปเบเบเบฑเบ Vault เปเบเป. เบซเบผเบฑเบเบเบฒเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบกเปเบเบเปเบฒเบเบเบฒเบ: เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบเบฅเปเปเบเบงเบฝเบ Nomad เบเบตเปเบเบฐเปเบเบฑเบเบเปเบฒเบเบญเบเบเบปเบงเปเบ, เบเบปเบงเบขเปเบฒเบ:
template {
data = <<EOH
{{with secret "secrets/pipeline-keys"}}
REGISTRY_LOGIN="{{ .Data.REGISTRY_LOGIN }}"
REGISTRY_PASSWORD="{{ .Data.REGISTRY_LOGIN }}{{ end }}"
EOH
destination = "secrets/service-name.env"
env = true
}
เบเปเบงเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฒเบเบเบฑเบเบชเบปเปเบเบเบฑเบเปเบชเปเบเบธเปเบก Nomad เปเบฅเบฐเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบกเบฑเบเปเบเบญเบฐเบเบฒเบเบปเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเปเบงเบปเปเบฒเบงเปเบฒเปเบเบเบฒเบเบเบญเบเปเบเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบซเบฑเบเบญเบปเบเปเบซเบฑเบเปเบเบเบฑเบ Nomad - เบกเบฑเบเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบเปเบเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบงเปเบฒเบเบตเป Kubernetes เบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบชเบฑเบเบชเบปเบเปเบเบตเปเบกเปเบเบตเบกเปเบฅเบฐเบเบฐเบเปเปเบฎเบฑเบเบฎเบนเปเปเบเบดเบเบเปเบฒเปเบฎเบเบญเบฑเบเปเบเบฑเบกเบเบตเปเบเบญเบเบกเบฑเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, Nomad เปเบกเปเบเบเบตเปเบฅเบตเบเบชเปเบฒเบฅเบฑเบเบเบนเปเปเบฅเบตเปเบกเบเบปเปเบ - เบกเบฑเบเบเปเบฒเบเบเบตเปเบเบฐเบเบดเบเบเบฑเปเบเปเบฅเบฐเบเบฑเปเบเบเปเบฒ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเบปเบเบชเบญเบเปเบเบเบฒเบเปเบเบเบเบฒเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบปเบเบเบฑเบเบซเบฒเบเบฑเบเบชเบฐเบเบฑเบเบเบปเปเบเบเบญเบเบกเบฑเบ - เบซเบเปเบฒเบเบตเปเบเบทเปเบเบเบฒเบเบซเบผเบฒเบเบเบฝเบเปเบเปเบเปเปเบกเบตเบซเบผเบทเบเบงเบเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบเปเปเบเบทเบเบเปเบญเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบทเปเบญเบงเปเบฒ Nomad เบเบฐเบชเบทเบเบเปเปเบเบฑเบเบเบฐเบเบฒเปเบฅเบฐเปเบเบญเบฐเบเบฒเบเบปเบเบกเบฑเบเบเบฐเปเบเปเบฎเบฑเบเบซเบเปเบฒเบเบตเปเบเบตเปเบเบธเบเบเบปเบเบเปเบญเบเบเบฒเบ.
เบเบนเปเบเบฝเบ: Ilya Andreev, เปเบเปเปเบเปเบเบ Alexey Zhadan เปเบฅเบฐเบเบตเบกเบเบฒเบ Live Linux
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com