āĻā§āĻŽāĻŋāĻāĻž
āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ, āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§āĻ° āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻ¤āĻž āĻĻā§āĻ°ā§āĻ¤ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻā§āĻā§ - āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻŦāĻžāĻĄāĻŧāĻŋāĻ¤ā§ āĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻā§āĨ¤ āĻāĻŽāĻŋ āĻ¨ā§āĻŽā§āĻ¯āĻžāĻĄā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻāĻ¨ āĻ āĻ°ā§āĻā§āĻ¸ā§āĻā§āĻ°ā§āĻāĻ°āĻā§ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻ¤ā§ āĻā§āĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ: āĻāĻāĻŋ āĻāĻŽāĻ¨ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ¯ā§āĻāĻžāĻ¨ā§ 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.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 āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻžā§ˇ āĻāĻ āĻāĻāĻā§āĻŽāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¯āĻžāĻ¤ā§ āĻāĻ¯āĻŧā§āĻŦ āĻĒā§āĻ¯āĻžāĻ¨ā§āĻ˛āĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄā§āĻŽā§āĻ¨ āĻāĻžāĻ¨ā§āĻ¨ āĻāĻŽāĻ¨ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¨āĻž āĻšāĻ¯āĻŧā§ˇ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻŋ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ - āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻ¨ā§āĻŽāĻžāĻĄā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦ āĻ¨āĻžāĨ¤ āĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§, āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦ āĻāĻŦāĻ āĻ¨ā§āĻŽā§āĻ¯āĻžāĻĄ āĻāĻāĻ¯āĻŧāĻ āĻā§āĻŦāĻ˛ āĻ§ā§āĻ¸āĻ° āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻāĻāĻžāĻ¨ā§ āĻā§āĻ¨āĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨ā§āĻāĨ¤
āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻĻā§āĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻ¨āĻ¸āĻžāĻ˛ āĻāĻā§āĻ¨ā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻŽāĻ°āĻž āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ§āĻžāĻĒāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻŋ:
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
āĻāĻ¨āĻĒā§āĻ¯āĻžāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ 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.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 āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻāĻŦāĻ 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