āĻā§āĻŽāĻŋāĻāĻž
āϏāĻŽā§āĻĒā§āϰāϤāĻŋ, āĻā§āĻŦāĻžāϰāύā§āĻāϏā§āϰ āĻāύāĻĒā§āϰāĻŋāϝāĻŧāϤāĻž āĻĻā§āϰā§āϤ āĻŦā§āĻĻā§āϧāĻŋ āĻĒāĻžāĻā§āĻā§ - āĻāϰāĻ āĻŦā§āĻļāĻŋ āĻĒā§āϰāĻāϞā§āĻĒ āĻŦāĻžāĻĄāĻŧāĻŋāϤ⧠āĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻāϰāĻā§āĨ¤ āĻāĻŽāĻŋ āύā§āĻŽā§āϝāĻžāĻĄā§āϰ āĻŽāϤ⧠āĻāĻāĻāύ āĻ āϰā§āĻā§āϏā§āĻā§āϰā§āĻāϰāĻā§ āϏā§āĻĒāϰā§āĻļ āĻāϰāϤ⧠āĻā§āϝāĻŧā§āĻāĻŋāϞāĻžāĻŽ: āĻāĻāĻŋ āĻāĻŽāύ āĻĒā§āϰāĻāϞā§āĻĒāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āϤ āϝā§āĻāĻžāύ⧠HashiCorp-āĻāϰ āĻ āύā§āϝāĻžāύā§āϝ āϏāĻŽāĻžāϧāĻžāύ āϝā§āĻŽāύ āĻāϞā§āĻ āĻāĻŦāĻ āĻāύāϏāĻžāϞ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āĻāĻŦāĻ āĻĒā§āϰāĻāϞā§āĻĒāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāĻ āĻžāĻŽā§āϰ āĻĻāĻŋāĻ āĻĨā§āĻā§ āĻāĻāĻŋāϞ āύāϝāĻŧ⧎ āĻāĻ āύāĻŋāĻŦāύā§āϧāĻāĻŋ Nomad āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻāύā§āϝ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻŦā§, āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āĻĻā§āĻāĻŋ āύā§āĻĄ āĻāĻāϤā§āϰāĻŋāϤ āĻāϰāĻŦā§ āĻāĻŦāĻ Gitlab āĻāϰ āϏāĻžāĻĨā§ Nomad āĻāĻāϤā§āϰāĻŋāϤ āĻāϰāĻŦā§āĨ¤

āĻĒāϰā§āĻā§āώāĻž āϏā§āĻā§āϝāĻžāύā§āĻĄ
āĻā§āϏā§āĻ āĻŦā§āĻā§āĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻāĻā§: 2 CPU, 4 RAM, 50 Gb SSD āĻāϰ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϏāĻš āϤāĻŋāύāĻāĻŋ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āϏāĻžāϰā§āĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ, āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āϏā§āĻĨāĻžāύā§āϝāĻŧ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§ āĻāĻāϤā§āϰāĻŋāϤ āĻšāϝāĻŧāĨ¤ āϤāĻžāĻĻā§āϰ āύāĻžāĻŽ āĻāĻŦāĻ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāύāĻž:
- 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/āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻāĻāύ āĻāϰāĻ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻā§āĻļāύā§āϰ āĻāύā§āϝ āĻāύāϏāĻžāϞ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻĒā§āϰāϏā§āϤā§āϤ āϰāϝāĻŧā§āĻā§āĨ¤
āĻāύāϏāĻžāϞā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāĻŽāĻžāĻĻā§āϰ keygen āĻāĻŽāĻžāύā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ āĻ āύāύā§āϝ āĻā§ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§:
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"]
}āĻāϏā§āύ āĻāϞāĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻŽā§āϞ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āĻ āϰā§āĻĨ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāϰāĻž āϝāĻžāĻ:
- āĻŦā§āĻāϏā§āĻā§āϰā§āϝāĻžāĻĒ: āϏāϤā§āϝāĨ¤ āύāϤā§āύ āύā§āĻĄ āϏāĻāϝā§āĻā§āϤ āĻĨāĻžāĻāϞ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϏāĻāϝā§āĻāύ āϏāĻā§āώāĻŽ āĻāϰā§āύāĨ¤ āĻāĻŽāĻŋ āϞāĻā§āώā§āϝ āĻāϰāĻŋ āϝ⧠āĻāĻŽāϰāĻž āĻāĻāĻžāύ⧠āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ āύā§āĻĄā§āϰ āϏāĻ āĻŋāĻ āϏāĻāĻā§āϝāĻž āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰāĻŋ āύāĻžāĨ¤
- āϏāĻžāϰā§āĻāĻžāϰ: āϏāϤā§āϝāĨ¤ āϏāĻžāϰā§āĻāĻžāϰ āĻŽā§āĻĄ āĻāĻžāϞ⧠āĻāϰā§āύāĨ¤ āĻāĻ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻŽā§āĻļāĻŋāύ⧠āĻāύāϏāĻžāϞ āĻāĻ āĻŽā§āĻšā§āϰā§āϤ⧠āĻāĻāĻŽāĻžāϤā§āϰ āϏāĻžāϰā§āĻāĻžāϰ āĻāĻŦāĻ āĻŽāĻžāϏā§āĻāĻžāϰ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻžāĻ āĻāϰāĻŦā§, Nomad's VM āĻšāĻŦā§ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻāĨ¤
- āϤāĻĨā§āϝ āĻā§āύā§āĻĻā§āϰ: dc1āĨ¤ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĄā§āĻāĻž āϏā§āύā§āĻāĻžāϰā§āϰ āύāĻžāĻŽ āĻāϞā§āϞā§āĻ āĻāϰā§āύāĨ¤ āĻāĻāĻŋ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ āĻāĻāϝāĻŧ āĻā§āώā§āϤā§āϰā§āĻ āĻ āĻāĻŋāύā§āύ āĻšāϤ⧠āĻšāĻŦā§āĨ¤
- āϏāĻā§āĻā§āϤāĻžāϝāĻŧāĻŋāϤ āĻāϰā§āύ:āϤā§āĻŽāĻžāϰ āĻāĻžāĻŦāĻŋ. āĻā§, āϝāĻž āĻ āĻŦāĻļā§āϝāĻ āĻ āύāύā§āϝ āĻšāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āϏāĻŽāϏā§āϤ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ⧠āĻŽā§āϞā§āĨ¤ āĻāύāϏāĻžāϞ āĻā§āĻā§āύ āĻāĻŽāĻžāύā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
- start_join. āĻāĻ āϤāĻžāϞāĻŋāĻāĻžāϝāĻŧ, āĻāĻŽāϰāĻž IP āĻ āĻŋāĻāĻžāύāĻžāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āϤāĻžāϞāĻŋāĻāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻŋ āϝā§āĻāĻžāύ⧠āϏāĻāϝā§āĻ āĻāϰāĻž āĻšāĻŦā§āĨ¤ āĻāĻ āĻŽā§āĻšā§āϰā§āϤā§, āĻāĻŽāϰāĻž āĻā§āĻŦāϞ āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻ āĻŋāĻāĻžāύāĻž āϰā§āĻā§āĻāĻŋāĨ¤
āĻāĻ āĻŽā§āĻšā§āϰā§āϤā§, āĻāĻŽāϰāĻž āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāύāϏāĻžāϞ āĻļā§āϰ⧠āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ:
root@consul-livelinux-01:~# /usr/local/bin/consul agent -config-dir /etc/consul.d/bootstrap -uiāĻāĻāĻŋ āĻāĻāύ āĻĄāĻŋāĻŦāĻžāĻ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āĻāĻžāϞ āĻāĻĒāĻžāϝāĻŧ, āϤāĻŦā§, āĻāĻāĻŋ āϏā§āϏā§āĻĒāώā§āĻ āĻāĻžāϰāĻŖā§ āϏā§āĻĨāĻžāϝāĻŧā§ āĻāĻŋāϤā§āϤāĻŋāϤ⧠āĻāĻžāĻ āĻāϰāĻŦā§ āύāĻžāĨ¤ āϏāĻŋāϏā§āĻā§āĻŽāĻĄ āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāύāϏāĻžāϞ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻŦāĻž āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻž āϝāĻžāĻ:
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.targetsystemctl āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāύāϏāĻžāϞ āĻāĻžāϞāĻžāύ:
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 āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻāĻŦāĻ āĻāĻāĻŋāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āύāĻžāĻŽ āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻā§āϞāĻŦā§āύ āύāĻžā§ˇ āĻāĻ āĻāĻāĻā§āĻŽāĻāĻŋ āĻĒā§āϰāϝāĻŧā§āĻāύ āϝāĻžāϤ⧠āĻāϝāĻŧā§āĻŦ āĻĒā§āϝāĻžāύā§āϞāĻāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻĄā§āĻŽā§āύ āĻāĻžāύā§āύ āĻāĻŽāύ āĻĒā§āϰāϤā§āϝā§āĻā§āϰ āĻāύā§āϝ āĻāĻĒāϞāĻŦā§āϧ āύāĻž āĻšāϝāĻŧ⧎ āϝāĻžāĻāĻšā§āĻ, āĻāĻŋāĻāϞā§āϝāĻžāĻŦ āϏā§āĻ āĻāĻĒ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻŋ āĻĒā§āϰāϤā§āϝāĻžāĻā§āϝāĻžāύ āĻāϰāϤ⧠āĻšāĻŦā§ - āĻ āύā§āϝāĻĨāĻžāϝāĻŧ āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋ āύā§āĻŽāĻžāĻĄā§ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻšāĻŦ āύāĻžāĨ¤ āĻāĻŽāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§, āĻāĻŋāĻāϞā§āϝāĻžāĻŦ āĻāĻŦāĻ āύā§āĻŽā§āϝāĻžāĻĄ āĻāĻāϝāĻŧāĻ āĻā§āĻŦāϞ āϧā§āϏāϰ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§ āϰāϝāĻŧā§āĻā§, āϤāĻžāĻ āĻāĻāĻžāύ⧠āĻā§āύāĻ āϏāĻŽāϏā§āϝāĻž āύā§āĻāĨ¤
āĻ āĻŦāĻļāĻŋāώā§āĻ āĻĻā§āĻāĻŋ āϏāĻžāϰā§āĻāĻžāϰā§, āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻ āύā§āϝāĻžāϝāĻŧā§ āĻāύāϏāĻžāϞ āĻāĻā§āύā§āĻ āĻāύāϏā§āĻāϞ āĻāϰā§āύāĨ¤ āĻāĻŽāϰāĻž āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻĢāĻžāĻāϞā§āϰ āϏāĻžāĻĨā§ āϧāĻžāĻĒāĻā§āϞāĻŋ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋ āĻāϰāĻŋ:
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.jsonconfig.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āĻāύāĻĒā§āϝāĻžāĻ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ 65 āĻāĻŽāĻŦāĻŋ āύā§āĻŽā§āϝāĻžāĻĄ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻĢāĻžāĻāϞ āĻĒāĻžāĻŦ - āĻāĻāĻŋ āĻ āĻŦāĻļā§āϝāĻ /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āϝāĻžāĻāĻšā§āĻ, āĻāĻŽāϰāĻž āϝāĻžāϝāĻžāĻŦāϰ āĻāĻžāϞ⧠āĻāϰāĻžāϰ āĻāύā§āϝ āϤāĻžāĻĄāĻŧāĻžāĻšā§āĻĄāĻŧā§ āĻāϰāĻāĻŋ āύāĻž - āĻāĻŽāϰāĻž āĻāĻāύāĻ āĻāϰ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻŋāύāĻŋ:
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.hclnomad.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 āϏā§āĻ āĻāĻĒ āĻāϰāĻž āĻāĻŦāĻ 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 āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āϏāĻžāϰā§āĻāĻžāϰā§āϰ āϤāĻžāϞāĻŋāĻāĻž
āĻāĻāϝāĻŧ āϏāĻžāϰā§āĻāĻžāϰ āϏāĻĢāϞāĻāĻžāĻŦā§ āĻĒā§āϝāĻžāύā§āϞ⧠āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻšāϝāĻŧā§āĻā§, āĻāĻŽāϰāĻž āϝāĻžāϝāĻžāĻŦāϰ āύā§āĻĄ āϏā§āĻā§āϝāĻžāĻāĻžāϏ āĻāĻŽāĻžāύā§āĻĄā§āϰ āĻāĻāĻāĻĒā§āĻā§ āĻāĻāĻ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦ:

āĻāĻŦāĻŋ 2āĨ¤ āϝāĻžāϝāĻžāĻŦāϰ āύā§āĻĄ āϏā§āĻā§āϝāĻžāĻāĻžāϏ āĻāĻŽāĻžāύā§āĻĄ āĻāĻāĻāĻĒā§āĻ
āĻāύāϏāĻžāϞ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻŋ? āĻāϞā§āύ āĻĻā§āĻā§ āύā§āĻāϝāĻŧāĻž āϝāĻžāĻāĨ¤ āĻāύāϏāĻžāϞ āĻāύā§āĻā§āϰā§āϞ āĻĒā§āϝāĻžāύā§āϞ⧠āϝāĻžāύ, āύā§āĻĄ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āϝāĻžāύ:

āĻāĻŦāĻŋ 3āĨ¤ āĻāύāϏāĻžāϞ āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āύā§āĻĄā§āϰ āϤāĻžāϞāĻŋāĻāĻž
āĻāĻāύ āĻāĻŽāϰāĻž āĻāύāϏāĻžāϞā§āϰ āϏāĻžāĻĨā§ āĻāĻāϝā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āϰāϏā§āϤā§āϤ āϝāĻžāϝāĻžāĻŦāϰ āĻāĻžāĻ āĻāϰāĻāĻŋāĨ¤ āĻā§āĻĄāĻŧāĻžāύā§āϤ āĻĒāϰā§āϝāĻžāϝāĻŧā§, āĻāĻŽāϰāĻž āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻāϰā§āώāĻŖā§āϝāĻŧ āĻ āĻāĻļā§ āύāĻžāĻŽāĻŦ: āĻāĻŽāϰāĻž āĻāĻŋāĻāϞā§āϝāĻžāĻŦ āĻĨā§āĻā§ āύā§āĻŽā§āϝāĻžāĻĄ āĻĒāϰā§āϝāύā§āϤ āĻĄāĻāĻžāϰ āĻāύā§āĻā§āĻāύāĻžāϰāĻā§āϞāĻŋāϰ āĻĄā§āϞāĻŋāĻāĻžāϰāĻŋ āϏā§āĻ āĻāĻĒ āĻāϰāĻŦ āĻāĻŦāĻ āĻāϰ āĻāĻŋāĻā§ āĻ āύā§āϝāĻžāύā§āϝ āϏā§āĻŦāϤāύā§āϤā§āϰ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϏāĻŽā§āĻĒāϰā§āĻā§āĻ āĻāĻĨāĻž āĻŦāϞāĻŦāĨ¤
āĻāĻāĻāĻŋ āĻāĻŋāĻāϞā§āϝāĻžāĻŦ āϰāĻžāύāĻžāϰ āϤā§āϰāĻŋ āĻāϰāĻž
āύā§āĻŽā§āϝāĻžāĻĄā§ āĻĄāĻāĻžāϰ āĻāĻŽā§āĻ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤā§, āĻāĻŽāϰāĻž āĻāĻŋāϤāϰ⧠āύā§āĻŽā§āϝāĻžāĻĄā§āϰ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻĢāĻžāĻāϞ āϏāĻš āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āϰāĻžāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ (āĻāĻāĻžāύā§, āϝāĻžāĻāĻšā§āĻ, āĻšā§āϝāĻžāĻļāĻŋāĻāϰā§āĻĒ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋāϰ āĻāϰāĻ āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āĻāϞā§āϞā§āĻ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠- āĻĒā§āĻĨāĻāĻāĻžāĻŦā§ āϤāĻžāϰāĻžāĻ āĻāĻāĻŽāĻžāϤā§āϰ āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻĢāĻžāĻāϞ)āĨ¤ āϰāĻžāύāĻžāϰ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϤ⧠āĻāĻāĻŋ āĻāĻĒāϞā§āĻĄ āĻāϰā§āύāĨ¤ āĻāϏā§āύ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϏāĻš āĻāĻāĻŋāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĄāĻāĻžāϰāĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻŋ:
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-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" {}
}
}
}
}
}āĻĻāϝāĻŧāĻž āĻāϰ⧠āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠āĻāĻŽāĻžāϰ āĻāĻāĻāĻŋ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ āĻāĻā§ āĻāĻŦāĻ āĻĄāĻāĻžāϰ āĻāĻŽā§āĻāĻāĻŋāϰ āϏāĻĢāϞ āĻāĻžāύāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻžāĻā§ āĻāϤ⧠āϞāĻ āĻāύ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻ āĻā§āώā§āϤā§āϰ⧠āϏāϰā§āĻŦā§āϤā§āϤāĻŽ āϏāĻŽāĻžāϧāĻžāύ āĻšāϞ āĻāϞā§āĻā§ āϞāĻāĻāύ āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻļā§āώ āĻāϰāĻž āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ āĻāĻāĻŋāĻā§ Nomad-āĻāϰ āϏāĻžāĻĨā§ āĻāĻā§āĻā§āϤ āĻāϰāĻžāĨ¤ āϝāĻžāϝāĻžāĻŦāϰ āϏā§āĻĨāĻžāύā§āϝāĻŧāĻāĻžāĻŦā§ āĻāϞā§āĻ āϏāĻŽāϰā§āĻĨāύ āĻāϰā§āĨ¤ āϤāĻŦā§ āĻĒā§āϰāĻĨāĻŽā§, āĻāϞā§āĻā§āĻ, āĻāĻŽāϰāĻž āϝāĻžāϝāĻžāĻŦāϰā§āϰ āĻāύā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āύā§āϤāĻŋāĻā§āϞāĻŋ āϏā§āĻ āĻāϰāĻŦ, āϏā§āĻā§āϞāĻŋ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§:
# 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
āĻāĻāύ āĻāĻŽāϰāĻž āĻāϞā§āĻā§āϰ āϏāĻžāĻĨā§ āĻā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤ āĻ āĻĒāĻžāϰā§āĻļāύā§āϰ āύā§āϤāĻŋāĻāĻŋ āϏāĻšāĻ: āĻāĻŽāϰāĻž 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 āύāϤā§āύāĻĻā§āϰ āĻāύā§āϝ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ - āĻāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āϏāĻšāĻāĨ¤ āϝāĻžāĻāĻšā§āĻ, āĻāĻŋāĻā§ āĻĒā§āϰāĻāϞā§āĻĒā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāĻŽāĻŋ āĻāϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋāϰ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŽā§āĻŽā§āĻā§āύ āĻšāĻ - āĻ āύā§āĻ āĻŽā§āϞāĻŋāĻ āĻĢāĻžāĻāĻļāύ āĻā§āĻŦāϞ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āύā§āĻ āĻŦāĻž āϤāĻžāϰāĻž āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āύāĻžāĨ¤ āϝāĻžāĻāĻšā§āĻ, āĻāĻŽāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻāϰāĻŋ āϝ⧠āϝāĻžāϝāĻžāĻŦāϰā§āϰ āĻŦāĻŋāĻāĻžāĻļ āĻ āĻŦā§āϝāĻžāĻšāϤ āĻĨāĻžāĻāĻŦā§ āĻāĻŦāĻ āĻāĻŦāĻŋāώā§āϝāϤ⧠āĻāĻāĻŋ āĻĒā§āϰāϤā§āϝā§āĻā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻĢāĻžāĻāĻļāύāĻā§āϞāĻŋ āĻ āϰā§āĻāύ āĻāϰāĻŦā§āĨ¤
āϞā§āĻāĻ: āĻāϞāĻŋāϝāĻŧāĻž āĻ
ā§āϝāĻžāύā§āĻĄā§āϰāĻŋāĻ, āĻ
ā§āϝāĻžāϞā§āĻā§āϏāĻŋ āĻāĻžāĻĻāĻžāύ āĻāĻŦāĻ āϞāĻžāĻāĻ āϞāĻŋāύāĻžāĻā§āϏ āĻāĻŋāĻŽ āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽā§āĻĒāĻžāĻĻāĻŋāϤ
āĻāϤā§āϏ: www.habr.com
