เดเดฎเตเดเด
เด เดเตเดคเตเดคเดฟเดเต, เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเตปเตเดฑเต เดเดจเดชเตเดฐเตเดคเดฟ เด เดคเดฟเดตเตเดเด เดตเดณเดฐเตเดเดฏเดพเดฃเต - เดเตเดเตเดคเตฝ เดเตเดเตเดคเตฝ เดชเตเดฐเตเดเดเตเดเตเดเตพ เดเดคเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต. เดจเตเดฎเดพเดกเต เดชเตเดฒเตเดฏเตเดณเตเดณ เดเดฐเต เดเตผเดเตเดเดธเตเดเตเดฐเตเดฑเตเดฑเดฑเต เดธเตเดชเตผเดถเดฟเดเตเดเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเต: เดนเดพเดทเดฟเดเตเตผเดชเตเดชเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฎเดฑเตเดฑเต เดชเดฐเดฟเดนเดพเดฐเดเตเดเตพ เดเดคเดฟเดจเดเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเตพเดเตเดเต เดเดคเต เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฃเต, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเตเตพเดเตเดเต, เดเตเตบเดธเตฝ, เดเตเดเดพเดคเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเตพ เดคเดจเตเดจเต เด เดเดฟเดธเตเดฅเดพเดจ เดธเตเดเดฐเตเดฏเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดฒเตเดฒ. เด เดฎเตเดฑเตเดฑเตเดฐเดฟเดฏเดฒเดฟเตฝ เดจเตเดฎเดพเดกเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดฐเดฃเตเดเต เดจเตเดกเตเดเตพ เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เด เดคเตเดชเตเดฒเต เดคเดจเตเดจเต เดจเตเดฎเดพเดกเดฟเดจเต Gitlab-เดฎเดพเดฏเดฟ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเด.
เดเตเดธเตเดฑเตเดฑเต เดธเตเดฑเตเดฑเดพเตปเดกเต
เดเตเดธเตเดฑเตเดฑเต เดฌเตเดเตเดเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเตเดฑเดเตเดเต: เดฎเตเดจเตเดจเต เดตเตเตผเดเตเดตเตฝ เดธเตเตผเดตเดฑเตเดเตพ 2 เดธเดฟเดชเดฟเดฏเต, 4 เดฑเดพเด, 50 เดเดฟเดฌเดฟ เดเดธเตเดเดธเตเดกเดฟ, เดเดฐเต เดชเตเดคเต เดฒเตเดเตเดเตฝ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเดฟเดฒเตเดเตเดเต เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เด เดตเดฐเตเดเต เดชเตเดฐเตเด เดเดชเดฟ เดตเดฟเดฒเดพเดธเดตเตเด:
- nomad-livelinux-01: 172.30.0.5
- nomad-livelinux-02: 172.30.0.10
- consul-livelinux-01: 172.30.0.15
เดจเตเดฎเดพเดกเดฟเตปเตเดฑเต เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเตป, เดเตเตบเดธเตฝ. เดเดฐเต เดจเตเดฎเดพเดกเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต
เด เดเดฟเดธเตเดฅเดพเดจ เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฎเตเดเตเดเต เดเดฐเดเดญเดฟเดเตเดเดพเด. เดธเดเตเดเตเดเดฐเดฃเด เดฒเดณเดฟเดคเดฎเดพเดฃเตเดเตเดเดฟเดฒเตเด, เดฒเตเดเดจเดคเตเดคเดฟเตปเตเดฑเต เดธเดฎเดเตเดฐเดคเดฏเตเดเตเดเดพเดฏเดฟ เดเดพเตป เดเดคเต เดตเดฟเดตเดฐเดฟเดเตเดเตเด: เดเดตเดถเตเดฏเดฎเตเดณเตเดณเดชเตเดชเตเตพ เดชเตเดเตเดเตเดจเตเดจเต เดเดเตเดธเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดกเตเดฐเดพเดซเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด เดเตเดฑเดฟเดชเตเดชเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด เดเดคเต เดธเตเดทเตเดเดฟเดเตเดเดคเดพเดฃเต.
เดเดเตเดเตพ เดชเดฐเดฟเดถเตเดฒเดจเด เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดธเตเดฆเตเดงเดพเดจเตเดคเดฟเด เดญเดพเดเด เดเดเตเดเตพ เดเตผเดเตเด เดเตเดฏเตเดฏเตเด, เดเดพเดฐเดฃเด เด เดเดเตเดเดคเตเดคเดฟเตฝ เดญเดพเดตเดฟ เดเดเดจ เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเตเดฃเตเดเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต.
เดเดเตเดเตพเดเตเดเต เดฐเดฃเตเดเต เดจเตเดฎเดพเดกเต เดจเตเดกเตเดเตพ เดเดฃเตเดเต, เด เดต เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต, เดญเดพเดตเดฟเดฏเดฟเตฝ เดเดเตเดเตพเดเตเดเต เดเดเตเดเตเดฎเดพเดฑเตเดฑเดฟเดเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดธเตเดเตเดฏเดฟเดฒเดฟเดเดเตเด เดเดตเดถเตเดฏเดฎเดพเดฃเต - เดเดคเดฟเดจเดพเดฏเดฟ เดเดเตเดเตพเดเตเดเต เดเตเตบเดธเตฝ เดเดตเดถเตเดฏเดฎเดพเดฃเต. เด เดเดชเดเดฐเดฃเด เดเดชเดฏเตเดเดฟเดเตเดเต, เดชเตเดคเดฟเดฏ เดจเตเดกเตเดเตพ เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดเดเตเด เดเตเตผเดเตเดเตเดจเตเดจเดคเตเด เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดฐเต เดเตเดฒเดฟเดฏเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต: เดธเตเดทเตเดเดฟเดเตเด เดจเตเดฎเดพเดกเต เดจเตเดกเต เดเตเตบเดธเตฝ เดเดเตปเตเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดจเตเดฎเดพเดกเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต. เด เดคเดฟเดจเดพเตฝ, เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ เดเดเตเดเตพ เดเตเตบเดธเตฝ เดธเตเตผเดตเตผ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด, เดตเตเดฌเต เดชเดพเดจเดฒเดฟเดจเดพเดฏเดฟ เด เดเดฟเดธเตเดฅเดพเดจ http เด เดเดเตเดเดพเดฐเด เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเด (เดเดคเต เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เด เดเดเตเดเดพเดฐเดฎเดฟเดฒเตเดฒเดพเดคเตเดฏเดพเดฃเต, เดเตเดเดพเดคเต เดเดฐเต เดฌเดพเดนเตเดฏ เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเตฝ เดเดเตเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด), เด เดคเตเดชเตเดฒเต เดคเดจเตเดจเต เดจเตเดฎเดพเดกเต เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเต เดเตเตบเดธเตฝ เดเดเตปเตเดฑเตเดฎเดพเดฐเตเด, เด เดคเดฟเดจเตเดถเตเดทเด เดเดเตเดเตพ เดจเตเดฎเดพเดกเดฟเดฒเตเดเตเดเต เดฎเดพเดคเตเดฐเดฎเต เดชเตเดเต.
HashiCorp-เตปเตเดฑเต เดเดชเดเดฐเดฃเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฃเต: เด เดเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ, เดเดเตเดเตพ เดฌเตเดจเดฑเดฟ เดซเดฏเตฝ เดฌเดฟเตป เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเตเดเดฏเตเด เดเตเดณเดฟเตปเตเดฑเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเตฝ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เด เดคเดฟเตปเตเดฑเต เดธเตเดตเดจ เดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดเตเตบเดธเตฝ เดฌเตเดจเดฑเดฟ เดซเดฏเตฝ เดกเตเตบเดฒเตเดกเต เดเตเดฏเตโเดคเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเตปเตเดฑเต เดนเตเด เดกเดฏเดฑเดเตโเดเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต เด เตบเดชเดพเดเตเดเต เดเตเดฏเตเดฏเตเด:
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/
เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดเตเดเตเดคเตฝ เดเตเตบเดซเดฟเดเดฑเตเดทเดจเดพเดฏเดฟ เดเดฐเต เดฑเตเดกเดฟเดฎเตเดฏเตเดกเต เดเตเตบเดธเตฝ เดฌเตเดจเดฑเดฟ เดเดฃเตเดเต.
เดเตเตบเดธเดฒเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป, เดเตเดเตเตป เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเตพ เดเดฐเต เด เดฆเตเดตเดฟเดคเตเดฏ เดเต เดธเตเดทเตเดเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
root@consul-livelinux-01:~# consul keygen
เดเตเตบเดธเตฝ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด, เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดเดจเดฏเตเดณเตเดณ /etc/consul.d/ เดเดจเตเดจ เดกเดฏเดฑเดเตเดเดฑเดฟ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต:
/etc/consul.d/
โโโ bootstrap
โ โโโ config.json
เดฌเตเดเตเดเตเดธเตเดเตเดฐเดพเดชเตเดชเต เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเตฝ เดเดฐเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเตฝ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเด config.json - เด เดคเดฟเตฝ เดเดเตเดเตพ เดเตเตบเดธเตฝ เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเตพ เดธเดเตเดเดฎเดพเดเตเดเตเด. เด เดคเดฟเตปเตเดฑเต เดเดณเตเดณเดเดเตเดเด:
{
"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"]
}
เดชเตเดฐเดงเดพเดจ เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเดณเตเด เด เดตเดฏเตเดเต เด เตผเดคเตเดฅเดเตเดเดณเตเด เดชเตเดฐเดคเตเดฏเตเดเด เดจเตเดเตเดเดพเด:
- เดฌเตเดเตเดเตเดธเตเดเตเดฐเดพเดชเตเดชเต: เดธเดคเตเดฏเด. เดชเตเดคเดฟเดฏ เดจเตเดกเตเดเตพ เดเดฃเดเตโเดฑเตเดฑเต เดเตเดฏเตโเดคเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ เด เดตเดฏเตเดเต เดธเตเดตเดฏเดฎเตเดต เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเตฝ เดเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเดจเตเดจเต. เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจ เดจเตเดกเตเดเดณเตเดเต เดเตเดคเตเดฏเดฎเดพเดฏ เดเดฃเตเดฃเด เดเดเตเดเตพ เดเดตเดฟเดเต เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ เดเดจเตเดจเต เดเดพเตป เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดจเตเดจเต.
- เดธเตเตผเดตเตผ: เดธเดคเตเดฏเด. เดธเตเตผเดตเตผ เดฎเตเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเด. เด เดตเตเตผเดเตเดตเตฝ เดฎเตเดทเตเดจเดฟเดฒเต เดเตเตบเดธเตฝ เดเดชเตเดชเตเตพ เดเด เดธเตเตผเดตเดฑเดพเดฏเตเด เดฎเดพเดธเตเดฑเตเดฑเดฑเดพเดฏเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเด, เดจเตเดฎเดพเดกเดฟเตปเตเดฑเต เดตเดฟเดเด เดเตเดฒเดฏเตปเตเดฑเดพเดฏเดฟเดฐเดฟเดเตเดเตเด.
- เดกเดพเดฑเตเดฑ เดเตเดจเตเดฆเตเดฐเด: dc1. เดเตเดฒเดธเตเดฑเตเดฑเตผ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑเดพ เดธเตเตปเตเดฑเดฑเดฟเตปเตเดฑเต เดชเตเดฐเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเด. เดเตเดฒเดฏเตปเตเดฑเตเดเดณเดฟเดฒเตเด เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเด เดเดคเต เดธเดฎเดพเดจเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด.
- เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด: เดจเดฟเดเตเดเดณเตเดเต-เดคเดพเดเตเดเตเตฝ. เดเดฒเตเดฒเดพ เดเตเดฒเดฏเตปเตเดฑเตเดเดณเดฟเดฒเตเด เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเด เด เดฆเตเดตเดฟเดคเตเดฏเดตเตเด เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเดคเตเดฎเดพเดฏ เดเต. เดเตเตบเดธเตฝ เดเตเดเตเตป เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดทเตเดเดฟเดเตเดเต.
- เดเดฐเดเดญเดฟเดเตเดเตเด_เดเตเดฐเตเด. เด เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดเดฃเดเตเดทเตป เดเตเดฏเตเดฏเตเดจเตเดจ เดเดชเดฟ เดตเดฟเดฒเดพเดธเดเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดเตเดเตพ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต. เดเดชเตเดชเตเตพ เดเดเตเดเตพ เดธเตเดตเดจเตเดคเด เดตเดฟเดฒเดพเดธเด เดฎเดพเดคเตเดฐเด เด เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเต.
เด เดเดเตเดเดคเตเดคเดฟเตฝ เดจเดฎเตเดเตเดเต เดเดฎเดพเตปเดกเต เดฒเตเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเตบเดธเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด:
root@consul-livelinux-01:~# /usr/local/bin/consul agent -config-dir /etc/consul.d/bootstrap -ui
เดเดคเต เดเดชเตเดชเตเตพ เดกเตเดฌเดเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดจเดฒเตเดฒ เดฎเดพเตผเดเดฎเดพเดฃเต, เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดตเตเดฏเดเตเดคเดฎเดพเดฏ เดเดพเดฐเดฃเดเตเดเดณเดพเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เด เดฐเตเดคเดฟ เดคเตเดเตผเดเตเดเดฏเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ. 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 เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดเดฏเตเด เดชเตเดฐเตเดเตเดธเดฟเดฏเดฟเดเดเตเด 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 เดเด เดเตเดฐเต เดตเตเดฌเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ เดเดตเดฟเดเต เด เดคเตเดคเดฐเด เดชเตเดฐเดถเตโเดจเดเตเดเดณเตเดจเตเดจเตเดฎเดฟเดฒเตเดฒ.
เดถเตเดทเดฟเดเตเดเตเดจเตเดจ เดฐเดฃเตเดเต เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เดเดเตเดเตพ เดคเดพเดดเต เดชเดฑเดฏเตเดจเตเดจ เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเตพ เด เดจเตเดธเดฐเดฟเดเตเดเต เดเตเตบเดธเตฝ เดเดเตปเตเดฑเตเดธเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเต. เดฌเตเดจเดฑเดฟ เดซเดฏเตฝ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเตพ เดเดเตเดเดเตเดเตพ เดเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต:
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 เด เดเดเดเตเดเดณเดฟเตฝ เดเดพเดฃเดพเด. เดเดฐเต เดเตเดฒเดฏเตปเตเดฑเต เดเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ เดเดคเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏเดฟ เดเดฃเดเตโเดฑเตเดฑเต เดเตเดฏเตโเดคเต เดเดจเตเดจเดพเดฃเต เดเดคเดฟเดจเตผเดคเตเดฅเด. เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดธเตเตผเดตเดฑเดฟเดฒเตเด เดเดคเต เดเดตเตผเดคเตเดคเดฟเดเตเดเตเด, เด เดคเดฟเดจเตเดถเตเดทเด เดจเดฎเตเดเตเดเต เดจเตเดฎเดพเดกเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเดจเตเด เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเดจเตเด เดเดดเดฟเดฏเตเด.
เดจเตเดฎเดพเดกเดฟเตปเตเดฑเต เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏ เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเตป เด เดคเดฟเตปเตเดฑเต เดเดฆเตเดฏเตเดเดฟเด เดกเตเดเตเดฏเตเดฎเตเตปเตเดฑเตเดทเดจเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดฐเดฃเตเดเต เดชเดฐเดฎเตเดชเดฐเดพเดเดค เดเตปเดธเตเดฑเตเดฑเดฒเตเดทเตป เดฐเตเดคเดฟเดเดณเตเดฃเตเดเต: เดเดฐเต เดฌเตเดจเดฑเดฟ เดซเดฏเตฝ เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเดฑเดตเดฟเดเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเดชเตเตฝ เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เดเดพเตป เดเดฆเตเดฏ เดฐเตเดคเดฟ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด.
เด เดญเดฟเดชเดพเดฏเดชเตเดชเตเดเตเด: เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดตเดณเดฐเต เดตเตเดเดคเตเดคเดฟเตฝ เดตเดฟเดเดธเดฟเดเตเดเตเดเตเดฃเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เดชเตเดคเดฟเดฏ เด เดชเตเดกเตเดฑเตเดฑเตเดเตพ เดชเดฒเดชเตเดชเตเดดเตเด เดชเตเดฑเดคเตเดคเดฟเดฑเดเตเดเตเดจเตเดจเต. เด เดฒเตเดเดจเด เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดฎเตเดชเตเดดเตเดเตเดเตเด เดเดฐเต เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เดชเตเดฑเดคเตเดคเดฟเดฑเดเตเดเตเด. เด เดคเดฟเดจเดพเตฝ, เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดจเตเดฎเดพเดกเดฟเตปเตเดฑเต เดจเดฟเดฒเดตเดฟเดฒเต เดชเดคเดฟเดชเตเดชเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเต เด เดคเต เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเดพเตป เดเดพเตป เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจเต.
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
เด เตบเดชเดพเดเตเดเต เดเตเดฏเตเดคเดคเดฟเดจเต เดถเตเดทเด, 65 MB เดญเดพเดฐเดฎเตเดณเตเดณ เดเดฐเต Nomad เดฌเตเดจเดฑเดฟ เดซเดฏเตฝ เดจเดฎเตเดเตเดเต เดฒเดญเดฟเดเตเดเตเด - เด เดคเต /usr/local/bin-เดฒเตเดเตเดเต เดจเตเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเดฃเด.
เดจเดฎเตเดเตเดเต เดจเตเดฎเดพเดกเดฟเดจเดพเดฏเดฟ เดเดฐเต เดกเดพเดฑเตเดฑ เดกเดฏเดฑเดเตโเดเดฑเดฟ เดธเตเดทเตโเดเดฟเดเตเดเต เด เดคเดฟเตปเตเดฑเต เดธเตเดตเดจ เดซเดฏเตฝ เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเด (เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ เดเดคเต เดจเดฟเดฒเดจเดฟเตฝเดเตเดเดฟเดฒเตเดฒ):
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
เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดจเตเดฎเดพเดกเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเดพเตป เดเดเตเดเตพเดเตเดเต เดคเดฟเดเตเดเตเดเดฎเดฟเดฒเตเดฒ - เดเดเตเดเตพ เดเดคเตเดตเดฐเต เด เดคเดฟเตปเตเดฑเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒ:
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 เดกเดฏเดฑเดเตโเดเตเดตเดฟเตปเตเดฑเต เดฎเตเดฒเตเดฏเด เดฎเดพเดฑเตเดฑเตเดฃเตเดเดคเตเดฃเตเดเต.
เด เดเดเตเดเดคเตเดคเดฟเดฒเต เด เดตเดธเดพเดจ เดเดพเดฐเตเดฏเด, เดชเตเดฐเตเดเตโเดธเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด http เด เดเดเตเดเดพเดฐเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด Nginx เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเด เดเดจเตเดจเดคเดพเดฃเต. 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. เดจเตเดฎเดพเดกเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต เดธเตเตผเดตเดฑเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต
เดฐเดฃเตเดเต เดธเตเตผเดตเดฑเตเดเดณเตเด เดชเดพเดจเดฒเดฟเตฝ เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เดจเตเดฎเดพเดกเต เดจเตเดกเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดธเต เดเดฎเดพเตปเดกเดฟเตปเตเดฑเต เดเดเตเดเตโเดชเตเดเตเดเดฟเตฝ เดเดเตเดเตพ เดเดฐเต เดเดพเดฐเตเดฏเด เดเดพเดฃเตเด:
เดเดฟเดคเตเดฐเด 2. เดจเตเดฎเดพเดกเต เดจเตเดกเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดธเต เดเดฎเดพเตปเดกเดฟเตปเตเดฑเต เดเดเตเดเตเดชเตเดเตเดเต
เดเตเตบเดธเดฒเดฟเตปเตเดฑเต เดเดพเดฐเตเดฏเดฎเต? เดจเดฎเตเดเตเดเต เดเดจเตเดจเต เดจเตเดเตเดเดพเด. เดเตเตบเดธเตฝ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดชเดพเดจเดฒเดฟเดฒเตเดเตเดเต เดชเตเดเตเด, เดจเตเดกเตเดเตพ เดชเตเดเดฟเดฒเตเดเตเดเต:
เดเดฟเดคเตเดฐเด 3. เดเตเตบเดธเตฝ เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต เดจเตเดกเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต
เดเดชเตเดชเตเตพ เดเตเตบเดธเดฒเตเดฎเดพเดฏเดฟ เดเตเตผเดจเตเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดฟเดฏ เดจเดพเดเตเดเดฟ เดเดเตเดเตพเดเตเดเตเดฃเตเดเต. เด เดตเดธเดพเดจ เดเดเตเดเดคเตเดคเดฟเตฝ, เดเดเตเดเตพ เดฐเดธเดเดฐเดฎเดพเดฏ เดญเดพเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดเดเตเดเตเด: Gitlab เดฎเตเดคเตฝ Nomad เดตเดฐเตเดฏเตเดณเตเดณ เดกเตเดเตเดเตผ เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดกเตเดฒเดฟเดตเดฑเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเด, เดเตเดเดพเดคเต เด เดคเดฟเตปเตเดฑเต เดฎเดฑเตเดฑเต เดเดฟเดฒ เดตเตเดฏเดคเดฟเดฐเดฟเดเตเดคเดฎเดพเดฏ เดธเดตเดฟเดถเตเดทเดคเดเดณเต เดเตเดฑเดฟเดเตเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเด.
Gitlab เดฑเดฃเตเดฃเตผ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต
Nomad-เดฒเตเดเตเดเต เดกเตเดเตเดเตผ เดเดฎเตเดเตเดเตพ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเตป, เดเดณเตเดณเดฟเตฝ Nomad เดฌเตเดจเดฑเดฟ เดซเดฏเดฒเตเดณเตเดณ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดฑเดฃเตเดฃเตผ เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเด (เดเดตเดฟเดเต, เดตเดดเดฟเดฏเดฟเตฝ, Hashicorp เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเดณเตเดเต เดฎเดฑเตเดฑเตเดฐเต เดธเดตเดฟเดถเตเดทเดค เดจเดฎเตเดเตเดเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเดพเด - เดตเตเดฏเดเตเดคเดฟเดเดคเดฎเดพเดฏเดฟ เด เดต เดเดฐเตเดฑเตเดฑ เดฌเตเดจเดฑเดฟ เดซเดฏเดฒเดพเดฃเต). เดเดคเต เดฑเดฃเตเดฃเตผ เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต เด เดชเตโเดฒเตเดกเต เดเตเดฏเตเดฏเตเด. เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดณเตเดณเดเดเตเดเด เดเดชเดฏเตเดเดฟเดเตเดเต เด เดคเดฟเดจเดพเดฏเดฟ เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดกเตเดเตเดเตผเดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเดพเด:
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}
เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, Gitlab เดฐเดเดฟเดธเตเดเตเดฐเดฟเดฏเดฟเตฝ เดจเดฎเตเดเตเดเต เดจเตเดฎเดพเดกเต เดฑเดฃเตเดฃเดฑเตเดเต เดเดฐเต เดเดฟเดคเตเดฐเด เดฒเดญเตเดฏเดฎเดพเดเตเด, เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดจเตเดฐเดฟเดเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด, เดเดฐเต เดชเตเดชเตเดชเตเดฒเตเตป เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดจเตเดฎเดพเดกเดฟเตปเตเดฑเต เดจเตเดฎเดพเดกเต เดเตเดฒเดฟ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเดพเด.
เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดธเดเตเดเตเดเดฐเดฃเด
เดจเตเดฎเดพเดกเดฟเตปเตเดฑเต เดเตเดฒเดฟเดฏเตเดเต เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฎเตเดเตเดเต เดเดฐเดเดญเดฟเดเตเดเดพเด. เด เดฒเตเดเดจเดคเตเดคเดฟเดฒเต เดเตปเตเดฑเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดคเดฟเดเดเตเดเตเด เดชเตเดฐเดพเดเตเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด: เด เดคเดฟเตฝ เดเดฐเต เดเดพเดธเตเดเต เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเด. .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
เดเดตเดฟเดเต เดตเดฟเดจเตเดฏเดพเดธเด เดธเตเดตเดฎเตเดงเดฏเดพ เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเตเดเต เดเดณเตเดณเดเดเตเดเด เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดเตเดเตพเดเตเดเดคเต เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดพเด. เดชเตเดชเตเดชเตเดฒเตเดจเดฟเตฝ เดฐเดฃเตเดเต เดเดเตเดเดเตเดเดณเตเดฃเตเดเต: เดเดฎเตเดเต เด เดธเดเดฌเตเดฒเดฟเดฏเตเด เดจเตเดฎเดพเดกเดฟเดฒเตเดเตเดเตเดณเตเดณ เดตเดฟเดจเตเดฏเดพเดธเดตเตเด. เดเดฆเตเดฏ เดเดเตเดเดคเตเดคเดฟเตฝ, เดเดเตเดเตพ เดเดฐเต เดกเตเดเตเดเตผ เดเดฎเตเดเต เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเตเดเดฏเตเด เด เดคเต เดเดเตเดเดณเตเดเต เดฐเดเดฟเดธเตเดเตเดฐเดฟเดฏเดฟเดฒเตเดเตเดเต เดคเดณเตเดณเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต, เดฐเดฃเตเดเดพเดฎเดคเตเดคเตเดคเดฟเตฝ เดเดเตเดเตพ เดจเตเดฎเดพเดกเดฟเตฝ เดเดเตเดเดณเตเดเต เดเตเดฒเดฟ เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต.
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" {}
}
}
}
}
}
เดเดจเดฟเดเตเดเต เดเดฐเต เดธเตเดตเดเดพเดฐเตเดฏ เดฐเดเดฟเดธเตเดเตเดฐเดฟ เดเดฃเตเดเตเดจเตเดจเตเด เดเดฐเต เดกเตเดเตเดเตผ เดเดฎเตเดเต เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏเดฟ เดตเดฒเดฟเดเตเดเดพเตป เดเดพเตป เด เดคเดฟเตฝ เดฒเตเดเดฟเตป เดเตเดฏเตเดฏเดฃเดฎเตเดจเตเดจเตเด เดฆเดฏเดตเดพเดฏเดฟ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด. เด เดเตเดธเดฟเดฒเต เดเดฑเตเดฑเดตเตเด เดฎเดฟเดเดเตเด เดชเดฐเดฟเดนเดพเดฐเด เดตเตเตพเดเตเดเดฟเดฒเตเดเตเดเต เดเดฐเต เดฒเตเดเดฟเตป, เดชเดพเดธเตโเดตเตเดกเต เดจเตฝเดเตเด, เดคเตเดเตผเดจเตเดจเต เด เดคเต เดจเตเดฎเดพเดกเตเดฎเดพเดฏเดฟ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต. เดจเตเดฎเดพเดกเต เดชเตเดฐเดพเดฆเตเดถเดฟเดเดฎเดพเดฏเดฟ เดตเตเตพเดเตเดเดฟเดจเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเต. เดเดจเตเดจเดพเตฝ เดเดฆเตเดฏเด, เดจเตเดฎเดพเดกเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดจเดฏเดเตเดเตพ เดตเตเตพเดเตเดเดฟเตฝ เดคเดจเตเดจเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเด:
# 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
เดเดชเตเดชเตเตพ, เดเดตเดถเตเดฏเดฎเดพเดฏ เดจเดฏเดเตเดเตพ เดธเตเดทเตโเดเดฟเดเตเด เดถเตเดทเด, job.nomad เดซเดฏเดฒเดฟเดฒเต เดเดพเดธเตโเดเต เดฌเตเดฒเตเดเตเดเดฟเตฝ เดเดเตเดเตพ เดตเตเตพเดเตเดเตเดฎเดพเดฏเดฟ เดธเดเดฏเตเดเดจเด เดเตเตผเดเตเดเตเด:
vault {
enabled = true
address = "https://vault.domain.name:8200"
token = "token"
}
เดเดพเตป เดเตเดเตเดเตบ เดฎเตเดเตเดจเดฏเตเดณเตเดณ เด เดเดเตเดเดพเดฐเด เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเตเด เด เดคเต เดเดตเดฟเดเต เดจเตเดฐเดฟเดเตเดเต เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต, เดจเตเดฎเดพเดกเต เดเดเตปเตเดฑเต เดเดฐเดเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเตเดเตเดเตบ เดเดฐเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดพเดฏเดฟ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดชเตเดทเดจเตเดฎเตเดฃเตเดเต:
$ VAULT_TOKEN=<token> nomad agent -config /path/to/config
เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดตเตเตพเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเด. เดชเตเดฐเดตเตผเดคเตเดคเดจ เดคเดคเตเดตเด เดฒเดณเดฟเดคเดฎเดพเดฃเต: เดจเตเดฎเดพเดกเต เดเตเดฒเดฟเดฏเดฟเตฝ เดเดเตเดเตพ เดเดฐเต เดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต, เด เดคเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเดเต เดฎเตเดฒเตเดฏเดเตเดเตพ เดธเดเดญเดฐเดฟเดเตเดเตเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต:
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
}
เด เดฒเดณเดฟเดคเดฎเดพเดฏ เดธเดฎเตเดชเดจเดคเตเดคเดฟเดฒเตเดเต, เดจเดฟเดเตเดเตพเดเตเดเต เดจเตเดฎเดพเดกเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดกเตเดฒเดฟเดตเดฑเดฟ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดพเดจเตเด เดญเดพเดตเดฟเดฏเดฟเตฝ เด เดคเดฟเดจเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดเดฐเต เดชเดฐเดฟเดงเดฟเดตเดฐเต เดเดพเตป เดจเตเดฎเดพเดกเดฟเดจเตเดเต เดธเดนเดคเดชเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเต เดเดพเตป เดชเดฑเดฏเตเด - เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดจเต เดเตเดเตเดคเตฝ เดธเดเตเดเตเตผเดฃเตเดฃเดค เดเดฃเตเดเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดเตเดฑเดฟเดฏ เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเตพเดเตเดเต เดเดคเต เดเตเดเตเดคเตฝ เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฃเต, เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เด เดคเดฟเตปเตเดฑเต เดฎเตเดดเตเดตเตป เดธเดพเดงเตเดฏเดคเดเดณเตเด เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ. เดเตเดเดพเดคเต, เดจเตเดฎเดพเดกเต เดคเตเดเดเตเดเดเตเดเดพเตผเดเตเดเต เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฃเต-เดเดคเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเดจเตเด เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเดจเตเด เดเดณเตเดชเตเดชเดฎเดพเดฃเต. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดฟเดฒ เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดชเดฐเตเดเตเดทเดฟเดเตเดเตเดฎเตเดชเตเตพ, เด เดคเดฟเตปเตเดฑเต เดเดฆเตเดฏเดเดพเดฒ เดชเดคเดฟเดชเตเดชเตเดเดณเดฟเตฝ เดเดจเดฟเดเตเดเต เดเดฐเต เดชเตเดฐเดถเตเดจเด เดจเตเดฐเดฟเดเตเดฃเตเดเดฟเดตเดฐเตเดจเตเดจเต - เดชเดฒ เด เดเดฟเดธเตเดฅเดพเดจ เดซเดเดเตเดทเดจเตเดเดณเตเด เด เดตเดฟเดเต เดเดฒเตเดฒ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดจเตเดฎเดพเดกเต เดตเดฟเดเดธเดฟเดเตเดเตเดจเตเดจเดคเต เดคเตเดเดฐเตเดฎเตเดจเตเดจเตเด เดญเดพเดตเดฟเดฏเดฟเตฝ เด เดคเต เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เดเดตเดถเตเดฏเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเดฑเตเดฑเตเดเตเดเตเดเตเดฎเตเดจเตเดจเตเด เดเดพเตป เดตเดฟเดถเตเดตเดธเดฟเดเตเดเตเดจเตเดจเต.
เดฐเดเดฏเดฟเดคเดพเดตเต: เดเดฒเตเดฏ เดเตปเดกเตเดฐเตเดตเต, เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดคเดคเต เด
เดฒเดเตเดธเดฟ เดทเดพเดฆเดจเตเด เดฒเตเดตเต เดฒเดฟเดจเดเตเดธเต เดเตเดฎเตเด
เด
เดตเดฒเดเดฌเด: www.habr.com