āĻļā§āĻ āĻĻāĻŋāĻ¨
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§ āĻĒā§āĻ°āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŽāĻ°āĻž Hetzner āĻāĻ āĻĒā§āĻ°ā§ āĻŦā§āĻ¯āĻŦāĻ¸āĻž āĻšā§āĻ¸ā§āĻ. āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻļāĻŋāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻāĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĨāĻžāĻāĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻ āĻ¸ā§āĻāĻŋāĻŽāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦ-āĻ°āĻžāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ āĻāĻŋāĻ¨ā§āĻ¨ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻ°āĻžāĻ¨āĻžāĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ˛ā§ āĻ āĻ¨ā§āĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧ, āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§/āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒā§āĻ°āĻ°ā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĨ¤
āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¸ā§āĻ°āĻž āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻāĻŋ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻāĻŦāĻ āĻ¸āĻšāĻ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ
āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛āĻāĻŋ āĻĻā§āĻā§āĻ¨āĨ¤
āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻļāĻŋāĻ¨ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻā§āĻ:
- āĻĒāĻžāĻāĻĨāĻ¨
- āĻĢāĻžāĻ˛āĻ¤ā§ āĻŦāĻž āĻāĻ˛ā§āĻŦā§āĻ˛ā§ āĻ˛ā§āĻ
- ssh āĻā§ āĻ¸āĻš āĻĢāĻžāĻāĻ˛
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ āĻ¨ā§āĻ¤ā§āĻ°ā§āĻ° āĻāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¨ā§āĻ¤āĻŋ āĻšāĻ˛ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ āĻŽā§āĻļāĻŋāĻ¨ āĻĻāĻ°āĻāĻžāĻ° āĻ¯āĻžāĻ° āĻāĻĒāĻ° Ansible āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻ āĻŽā§āĻļāĻŋāĻ¨ āĻĨā§āĻā§, ansible āĻāĻŋāĻ āĻĒā§āĻ˛ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĒāĻžāĻ āĻžāĻŦā§ āĻāĻŦāĻ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°āĻŦā§āĨ¤ āĻāĻ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§, āĻāĻŽāĻ°āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻŦāĻžāĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻŋāĻ¤ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻāĻŋ:
- āĻĒāĻžāĻāĻĨāĻ¨
- ansible
- gitlab-āĻ°āĻžāĻ¨āĻžāĻ°
āĻ¸āĻžāĻāĻāĻ āĻ¨āĻŋāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĨā§āĻā§ - āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦ-āĻ°āĻžāĻ¨āĻžāĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, ssh-keygen āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ ssh āĻā§ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ .ssh/authorized_keys
āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻļāĻŋāĻ¨ā§, āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻļāĻŋāĻ¨ā§ āĻāĻ¤ā§āĻ¤āĻ° āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻ 22 āĻā§āĻ˛ā§āĻ¨āĨ¤
āĻāĻāĻ¨ āĻāĻ° ansible āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻ¸āĻŦ āĻāĻŋāĻā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻāĻŦāĨ¤ āĻĢāĻžāĻāĻ˛ā§ /etc/ansible/ansible.cfg
āĻāĻŽāĻ°āĻž āĻ˛āĻžāĻāĻ¨āĻāĻŋ āĻāĻ¨āĻāĻŽā§āĻ¨ā§āĻ āĻāĻ°āĻŦ host_key_checking = False
āĻ¯āĻžāĻ¤ā§ āĻāĻ¤ā§āĻ¤āĻ°āĻĻāĻžāĻ¤āĻžāĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻ¨āĻž āĻāĻ°ā§āĨ¤
āĻāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻ¤ā§āĻ¤āĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ¨āĻā§āĻ¨ā§āĻāĻ°āĻŋ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯ā§āĻāĻžāĻ¨ āĻĨā§āĻā§ āĻāĻāĻŋ āĻ¸ā§āĻ āĻŽā§āĻļāĻŋāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻĒāĻŋ āĻ¨ā§āĻŦā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻŋāĻ āĻĒā§āĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻŽāĻ°āĻž Hetzner's API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ, āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° AWS, Asure, āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĨā§āĻā§ āĻšā§āĻ¸ā§āĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ˛āĻŽāĻžāĻ¨ āĻŽā§āĻļāĻŋāĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĨāĻžāĻ āĻāĻāĻāĻŋ API āĻāĻā§, āĻ¤āĻžāĻ āĻ¨āĻž?)āĨ¤
āĻāĻ¨āĻā§āĻ¨ā§āĻāĻ°āĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻ āĻ¨ Ansible-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦāĻ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ; āĻāĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻāĻ°āĻāĻŽ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤:
[ĐŗŅŅĐŋĐŋĐ°]
ip-Đ°Đ´ŅĐĩŅ
ip-Đ°Đ´ŅĐĩŅ
[ĐŗŅŅĐŋĐŋĐ°2]
ip-Đ°Đ´ŅĐĩŅ
ip-Đ°Đ´ŅĐĩŅ
āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ (āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻŋ vm_list
):
#!/bin/bash
echo [group] > /etc/ansible/cloud_ip &&
"ваŅ CLI СаĐŋŅĐžŅ ĐŊĐ° ĐŋĐžĐģŅŅĐĩĐŊиĐĩ IP СаĐŋŅŅĐĩĐŊĐŊŅŅ
ĐŧĐ°ŅиĐŊ в ĐēĐģĐ°ŅŅĐĩŅĐĩ" >> /etc/ansible/cloud_ip
echo " " >> /etc/ansible/cloud_ip
echo [group2] > /etc/ansible/cloud_ip &&
"ваŅ CLI СаĐŋŅĐžŅ ĐŊĐ° ĐŋĐžĐģŅŅĐĩĐŊиĐĩ IP СаĐŋŅŅĐĩĐŊĐŊŅŅ
ĐŧĐ°ŅиĐŊ в Đ´ŅŅĐŗĐžĐŧ ĐēĐģĐ°ŅŅĐĩŅĐĩ" >> /etc/ansible/cloud_ip
āĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§āĻā§ āĻ¯ā§ Ansible āĻāĻžāĻ āĻāĻ°ā§ āĻāĻŦāĻ IP āĻ āĻŋāĻāĻžāĻ¨āĻž āĻā§āĻ°āĻšāĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻ¨ā§āĻ§ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ:
/etc/ansible/./vm_list && ansible -i /etc/ansible/cloud_ip -m shell -a 'hostname' group
āĻāĻāĻāĻĒā§āĻāĻāĻŋāĻ¤ā§ āĻ¸ā§āĻ āĻŽā§āĻļāĻŋāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻšā§āĻ¸ā§āĻāĻ¨āĻžāĻŽ āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻļāĻŦā§āĻĻ:
- /etc/ansible/./vm_list - āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
- -i - āĻāĻ¨āĻā§āĻ¨ā§āĻāĻ°āĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻ°āĻŽ āĻĒāĻĨ
- -m - āĻļā§āĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤ā§āĻ¤āĻ°āĻ¯ā§āĻā§āĻ¯ āĻŦāĻ˛ā§āĻ¨
- -āĻāĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋāĨ¤ āĻ¯ā§ āĻā§āĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
- āĻā§āĻ°ā§āĻĒ - āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽāĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻ¸āĻāĻ˛ā§ āĻā§āĻˇā§āĻ ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨
āĻāĻ¸ā§āĻ¨ āĻāĻ°āĻ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ - āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻŋāĻ āĻāĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŋ:
/etc/ansible/./vm_list && ansible -i /etc/ansible/cloud_ip -m shell -a 'cd /path/to/project && git pull' group
āĻ¯āĻĻāĻŋ āĻāĻāĻāĻĒā§āĻā§ āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻĒ āĻā§ āĻĄā§āĻ āĻŦāĻž āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĨā§āĻā§ āĻāĻ¨āĻ˛ā§āĻĄ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻ°āĻā§āĨ¤
āĻāĻāĻ¨ āĻāĻ āĻ¸āĻŦ āĻāĻ¨ā§āĻ¯ āĻŦā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŋ
āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦā§ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻŦā§āĻ°āĻžāĻā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻļā§āĻāĻžāĻ¨
āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋāĻā§ āĻāĻ°āĻ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻĢāĻžāĻāĻ˛ā§ āĻ°āĻžāĻāĻŋ (āĻāĻ¸ā§āĻ¨ āĻāĻā§ exec_pull āĻŦāĻ˛āĻŋ) -
#!/bin/bash
/etc/ansible/./get_vms && ansible -i /etc/ansible/cloud_ip -m shell -a "$@"
āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦā§ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ .gitlab-ci.yml
āĻāĻŽāĻ°āĻž āĻāĻŋāĻ¤āĻ°ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ°āĻžāĻāĻŋ:
variables:
GIT_STRATEGY: none
VM_GROUP: group
stages:
- pull
- restart
run_exec_pull:
stage: pull
script:
- /etc/ansible/exec_pull 'cd /path/to/project/'$CI_PROJECT_NAME' && git pull' $VM_GROUP
only:
- master
run_service_restart:
stage: restart
script:
- /etc/ansible/exec_pull 'your_app_stop && your_app_start' $VM_GROUP
only:
- master
āĻ¸āĻŦ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤. āĻāĻāĻ¨ -
- āĻāĻāĻāĻŋ āĻ āĻā§āĻā§āĻāĻžāĻ° āĻāĻ°āĻž
- āĻāĻŽāĻŋ āĻā§āĻļāĻŋ āĻ¯ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻ°āĻā§
āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ .yml āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ¤ā§āĻ¤āĻ°āĻ¯ā§āĻā§āĻ¯ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻŦā§ā§ˇ
āĻāĻ¤ā§āĻ¸: www.habr.com