เจเฉฐเจเจพ เจฆเจฟเจจ
เจธเจพเจกเฉ เจเฉเจฒ เจนเจฐ เจเฉฑเจ เจตเจฟเฉฑเจ เจตเฉฑเจกเฉ เจเจฟเจฃเจคเฉ เจตเจฟเฉฑเจ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ เจตเจพเจฒเฉ เจเจ เจเจฒเจพเจเจก เจเจฒเฉฑเจธเจเจฐ เจนเจจเฅค เจ เจธเฉเจ เจนเฉเจเจเจผเจจเจฐ เจตเจฟเจเฉ เจเจธ เจชเฉเจฐเฉ เจเจพเจฐเฉเจฌเจพเจฐ เจฆเฉ เจฎเฉเจเจผเจฌเจพเจจเฉ เจเจฐเจฆเฉ เจนเจพเจเฅค เจนเจฐเฉเจ เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ เจฎเจพเจธเจเจฐ เจฎเจธเจผเฉเจจ เจนเฉ, เจเจธ เจคเฉเจ เจเฉฑเจ เจธเจจเฉเจชเจธเจผเจพเจ เจฒเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเจชเจฃเฉ เจเจช เจนเฉ เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจ เฉฐเจฆเจฐ เจธเจพเจฐเฉเจเจ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค
เจเจน เจธเจเฉเจฎ เจธเจพเจจเฉเฉฐ เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเจฟเจเจฒเฉเจฌ-เจฐเจจเจฐเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจจเจนเฉเจ เจฆเจฟเฉฐเจฆเฉ, เจเจฟเจเจเจเจฟ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจชเฉเจฆเจพ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ เจเจฆเฉเจ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจเฉฑเจเฉ เจเจฟเจนเฉ เจฐเจเจฟเจธเจเจฐเจก เจฆเฉเฉเจพเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉ เจนเจจ, เจเจฟเจธ เจจเฉ เจธเจพเจจเฉเฉฐ เจนเฉฑเจฒ เจฒเฉฑเจญเจฃ เจ เจคเฉ เจเจธ เจฒเฉเจ/เจฎเฉเจจเฉเจ เจฒ เจจเฉเฉฐ เจฒเจฟเจเจฃ เจฒเจ เจชเฉเจฐเฉเจฐเจฟเจเฅค
เจเจน เจธเจผเจพเจเจฆ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจ เจญเจฟเจเจธ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจเจน เจนเฉฑเจฒ เจเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ เจธเจเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจ เจคเฉ เจธเจฐเจฒ เจเจพเจชเจฆเจพ เจธเฉเฅค
เจเจฟเจเจเฉเจฐเจฟเจ
เจฒ เจฒเจ, เจเจฟเจฐเจชเจพ เจเจฐเจเฉ cat เจตเฉเจเฉเฅค
เจฎเจพเจธเจเจฐ เจฎเจธเจผเฉเจจ 'เจคเฉ เจฒเฉเฉเฉเจเจฆเฉ เจชเฉเจเฉเจ:
- เจชเจพเจเจฅเจจ
- Git
- ssh เจเฉเฉฐเจเฉเจเจ เจจเจพเจฒ เจซเจพเจเจฒ
เจธเจพเจฐเฉเจเจ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ 'เจคเฉ เจเจเฉเจฎเฉเจเจฟเจ เจเจ เจชเฉเฉฑเจฒ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเจพ เจเจฎ เจธเจฟเจงเจพเจเจค เจเจน เจนเฉ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจฎเจธเจผเฉเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเจฟเจธ 'เจคเฉ Ansible เจเฉฐเจธเจเจพเจฒ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค เจเจธ เจฎเจธเจผเฉเจจ เจคเฉเจ, เจเจตเจพเจฌเจฆเฉเจน เจเจฟเฉฑเจ เจชเฉเฉฑเจฒ เจเจฎเจพเจเจกเจพเจ เจญเฉเจเฉเจเจพ เจ เจคเฉ เจ เจชเจกเฉเจ เจเฉเจคเฉ เจเจ เจธเฉเจตเจพ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐเฉเจเจพเฅค เจเจนเจจเจพเจ เจเจฆเฉเจธเจผเจพเจ เจฒเจ, เจ เจธเฉเจ เจเจฒเฉฑเจธเจเจฐเจพเจ เจฆเฉ เจฌเจพเจนเจฐ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจ เจฌเจฃเจพเจ เจนเฉ เจ เจคเฉ เจเจธ 'เจคเฉ เจธเจฅเจพเจชเจฟเจค เจเฉเจคเฉ เจนเฉ:
- เจชเจพเจเจฅเจจ
- เจเจตเจพเจฌเจฆเฉเจน
- gitlab-เจฆเฉเฉเจพเจ
เจธเฉฐเจเจ เจจเจพเจคเจฎเจ เจฎเฉเฉฑเจฆเจฟเจเจ เจคเฉเจ - เจคเฉเจนเจพเจจเฉเฉฐ gitlab-runner เจจเฉเฉฐ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจ, ssh-keygen เจฌเจฃเจพเจเจฃ, เจเจธ เจฎเจธเจผเฉเจจ เจฆเฉ เจเจจเจคเจ ssh เจเฉเฉฐเจเฉ เจจเฉเฉฐ เจ
เฉฑเจชเจฒเฉเจก เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ .ssh/authorized_keys
เจฎเจพเจธเจเจฐ เจฎเจธเจผเฉเจจ 'เจคเฉ, เจฎเจพเจธเจเจฐ เจฎเจธเจผเฉเจจ 'เจคเฉ เจเจตเจพเจฌเจฆเฉเจนเฉ เจฒเจ เจชเฉเจฐเจ 22 เจจเฉเฉฐ เจเฉเจฒเฉเจนเฉเฅค
เจเจ เจนเฉเจฃ เจเจตเจพเจฌเจฆเฉเจน เจจเฉเฉฐ เจธเฉฐเจฐเจเจฟเจค เจเจฐเฉเจ
เจเจฟเจเจเจเจฟ เจธเจพเจกเจพ เจเฉเจเจพ เจนเจฐ เจธเฉฐเจญเจต เจเฉเจเจผ เจจเฉเฉฐ เจธเจตเฉเจเจฒเจฟเจค เจเจฐเจจเจพ เจนเฉเฅค เจซเจพเจเจฒ เจตเจฟเฉฑเจ /etc/ansible/ansible.cfg
เจ
เจธเฉเจ เจฒเจพเจเจจ 'เจคเฉ เจเจฟเฉฑเจชเจฃเฉ เจจเจนเฉเจ เจเจฐเจพเจเจเฉ host_key_checking = False
เจคเจพเจ เจเฉ เจเจตเจพเจฌเจฆเฉเจน เจจเจตเฉเจเจ เจฎเจธเจผเฉเจจเจพเจ เจฆเฉ เจชเฉเจธเจผเจเฉ เจฆเฉ เจฎเฉฐเจ เจจเจพ เจเจฐเฉเฅค
เจ เฉฑเจเฉ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจตเจพเจฌเจฆเฉเจน เจฒเจ เจธเจตเฉเจเจฒเจฟเจค เจคเฉเจฐ 'เจคเฉ เจเฉฑเจ เจตเจธเจคเฉ เจซเจพเจเจฒ เจคเจฟเจเจฐ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเฉฐเจฆเฉ เจนเฉ, เจเจฟเฉฑเจฅเฉเจ เจเจน เจเจนเจจเจพเจ เจฎเจธเจผเฉเจจเจพเจ เจฆเฉ เจเจเจชเฉ เจฒเฉ เจฒเจตเฉเจเฉ เจเจฟเจจเฉเจนเจพเจ 'เจคเฉ เจคเฉเจนเจพเจจเฉเฉฐ git เจชเฉเฉฑเจฒ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเฉฐเจฆเฉ เจนเฉเฅค
เจ เจธเฉเจ เจนเฉเจเจเจผเจจเจฐ เจฆเฉ API เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจน เจซเจพเจเจฒ เจคเจฟเจเจฐ เจเจฐเจฆเฉ เจนเจพเจ, เจคเฉเจธเฉเจ เจเจชเจฃเฉ AWS, Asure, เจกเฉเจเจพเจฌเฉเจธ เจคเฉเจ เจนเฉเจธเจเจพเจ เจฆเฉ เจธเฉเจเฉ เจฒเฉ เจธเจเจฆเฉ เจนเฉ (เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจคเฉเจนเจพเจกเฉเจเจ เจเฉฑเจฒ เจฐเจนเฉเจเจ เจฎเจธเจผเฉเจจเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจจ เจฒเจ เจเจฟเจคเฉ API เจนเฉ, เจ เฉเจ เจนเฉ?)เฅค
เจเจจเจตเฉเจเจเจฐเฉ เจซเจพเจเจฒ เจฆเฉ เจฌเจฃเจคเจฐ เจเจตเจพเจฌเจฆเฉเจน เจฒเจ เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉ; เจเจน เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ:
[ะณััะฟะฟะฐ]
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
เจเจน เจเจพเจเจ เจเจฐเจจ เจฆเจพ เจธเจฎเจพเจ เจนเฉ เจเจฟ เจเจตเจพเจฌเฉ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ เจ เจคเฉ IP เจชเจคเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฆเฉ เจจเจพเจฒ เจ เจจเฉเจเฉเจฒ เจนเฉ:
/etc/ansible/./vm_list && ansible -i /etc/ansible/cloud_ip -m shell -a 'hostname' group
เจเจเจเจชเฉเฉฑเจ เจตเจฟเฉฑเจ เจเจนเจจเจพเจ เจฎเจธเจผเฉเจจเจพเจ เจฆเฉ เจนเฉเจธเจ เจจเจพเจ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจเฉฑเจคเฉ เจเจฎเจพเจเจก เจเจฒเจพเจ เจเจ เจธเฉเฅค
เจธเฉฐเจเฉเจเจธ เจฌเจพเจฐเฉ เจเฉเจ เจธเจผเจฌเจฆ:
- /etc/ansible/./vm_list - เจฎเจธเจผเฉเจจเจพเจ เจฆเฉ เจธเฉเจเฉ เจคเจฟเจเจฐ เจเจฐเฉ
- -i - เจตเจธเจคเฉ-เจธเฉเจเฉ เจซเจพเจเจฒ เจฆเจพ เจชเฉเจฐเจพ เจฎเจพเจฐเจ
- -m - เจธเจผเฉเฉฑเจฒ เจฎเฉเจกเฉเจเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ เจเจตเจพเจฌเจฆเฉเจน เจฆเฉฑเจธเฉ
- -a เจฆเจฒเฉเจฒ เจนเฉเฅค เจเฉเจ เจตเฉ เจเจฎเจพเจเจก เจเฉฑเจฅเฉ เจฆเจฐเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ
- เจเจฐเฉเฉฑเจช โ เจคเฉเจนเจพเจกเฉ เจเจฒเฉฑเจธเจเจฐ เจฆเจพ เจจเจพเจฎเฅค เจเฉเจเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจพเจฐเฉ เจเจฒเฉฑเจธเจเจฐเจพเจ 'เจคเฉ เจ เจเจฟเจนเจพ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจคเจพเจ เจธเจฎเฉเจน เจจเฉเฉฐ เจธเจพเจฐเจฟเจเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒเฉ
เจเจฒเฉ เจ เฉฑเจเฉ เจเฉฑเจฒเฉเจ - เจเจ เจเจชเจฃเฉเจเจ เจตเจฐเจเฉเจ เจฒ เจฎเจธเจผเฉเจจเจพเจ 'เจคเฉ git pull เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจ:
/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