เจเฉเจ เจธเจฎเจพเจ เจชเจนเจฟเจฒเจพเจ เจฎเฉเจจเฉเฉฐ เจฐเฉเจฒเจเจผ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจคเฉเจจเจพเจค เจเจฐเจจ เจฒเจ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจคเจฟเจเจฐ เจเจฐเจจ เจฒเจ เจเจ เจเจตเจพเจฌเจฆเฉเจน เจชเจฒเฉเจฌเฉเฉฑเจ เจฒเจฟเจเจฃ เจฆเฉ เจฒเฉเฉ เจธเฉเฅค เจ เจคเฉ, เจนเฉเจฐเจพเจจเฉ เจฆเฉ เจเฉฑเจฒ เจนเฉ เจเจฟ, เจฎเฉเจจเฉเฉฐ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจเจฆเจฎ-เจฆเจฐ-เจเจฆเจฎ เจฎเฉเจจเฉเจ เจฒ เจจเจนเฉเจ เจฎเจฟเจฒเจฟเจ. เจฎเฉเจ เจเจน เจธเจฎเจเฉ เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจนเฉเจฐ เจฆเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจฆเฉ เจจเจเจฒ เจจเจนเฉเจ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจธเฉ เจเจฟ เจเฉ เจนเฉ เจฐเจฟเจนเจพ เจนเฉ, เจ เจคเฉ เจ เฉฐเจค เจตเจฟเฉฑเจ เจฎเฉเจจเฉเฉฐ เจธเจญ เจเฉเจ เจเจชเจฃเฉ เจเจช เจเจเฉฑเจ เจพ เจเจฐเจฆเฉ เจนเฉเจ, เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจจเฉเฉฐ เจชเฉเฉเจนเจจเจพ เจชเจฟเจเฅค เจธเจผเจพเจเจฆ เจฎเฉเจ เจเจธ เจฒเฉเจ เจฆเฉ เจฎเจฆเจฆ เจจเจพเจฒ เจเจธ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจคเฉเจเจผ เจเจฐเจจ เจตเจฟเฉฑเจ เจเจฟเจธเฉ เจฆเฉ เจฎเจฆเจฆ เจเจฐ เจธเจเจฆเจพ เจนเจพเจ.
เจธเจฎเจเจฃ เจตเจพเจฒเฉ เจชเจนเจฟเจฒเฉ เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ เจเจตเจพเจฌเจฆเฉเจน เจคเฉเจนเจพเจจเฉเฉฐ SSH เจฐเจพเจนเฉเจ เจฐเจฟเจฎเฉเจ เจธเจฐเจตเจฐ (เจธเจฐเจตเจฐเจพเจ) 'เจคเฉ เจเจพเจฐเจตเจพเจเจเจ เจฆเฉ เจชเฉเจฐเจต-เจชเฉเจฐเจญเจพเจธเจผเจฟเจค เจธเฉเจเฉ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจเฉฐเจเจฐเจซเฉเจธ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค เจเฉฑเจฅเฉ เจเฉเจ เจเจพเจฆเฉ เจจเจนเฉเจ เจนเฉ, เจคเฉเจธเฉเจ เจเฉฑเจ เจชเจฒเฉฑเจเจเจจ เจธเจฅเจพเจชเจค เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจกเฉเจเจฐ, เจจเจฟเจเจฐเจพเจจเฉ เจ เจคเฉ เจนเฉเจฐ เจเฉเจเจผเจพเจ เจฆเฉ เจจเจพเจฒ เจเจชเจฃเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจเฉฑเจ เจเจผเฉเจฐเฉ เจกเจพเจเจจเจเจพเจเจฎ เจคเฉเจจเจพเจคเฉ เจชเฉเจฐเจพเจชเจค เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจเฉฑเจ เจชเจฒเฉเจฌเฉเฉฑเจ เจฒเจฟเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจชเจคเจพ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจ เจธเจฒ เจตเจฟเฉฑเจ เจเฉ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเจฟเจตเฉเจ เจเจฐเจจเจพ เจนเฉเฅค เจเจธ เจฒเจ เจฎเฉเจ GitHub เจคเฉเจ เจคเจฟเจเจฐ เจชเจฒเฉเจฌเฉเฉฑเจเจพเจ เจเจพเจ เจฒเฉเจเจพเจ เจเจฟเจตเฉเจ เจเจฟ: "เจเจพเจชเฉ เจเจฐเฉ เจ เจคเฉ เจเจฒเจพเจ, เจเจน เจเฉฐเจฎ เจเจฐเฉเจเจพ" เจคเฉเจ เจธเฉฐเจคเฉเจธเจผเจ เจจเจนเฉเจ เจนเจพเจเฅค
เจธเจพเจจเฉเฉฐ เจเฉ เจเจพเจนเฉเจฆเจพ เจนเฉ?
เจเจฟเจตเฉเจ เจเจฟ เจฎเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจฟเจนเจพ เจนเฉ, เจเฉฑเจ เจชเจฒเฉเจฌเฉเฉฑเจ เจฒเจฟเจเจฃ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจเจพเจฃเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจเฉ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเจฟเจตเฉเจ เจเจฐเจจเจพ เจนเฉเฅค เจเจ เจซเฉเจธเจฒเจพ เจเจฐเฉเจ เจเจฟ เจธเจพเจจเฉเฉฐ เจเฉ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจฐเฉเจฒเจเจผ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ เจธเจพเจจเฉเฉฐ เจเจ เจธเจฟเจธเจเจฎ เจชเฉเจเฉเจเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉ: nginx, postgresql (redis, เจเจฆเจฟ)เฅค เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจธเจพเจจเฉเฉฐ เจฐเฉเจฌเฉ เจฆเฉ เจเฉฑเจ เจเจพเจธ เจธเฉฐเจธเจเจฐเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ. เจเจธเจจเฉเฉฐ rbenv (rvm, asdf...) เจฐเจพเจนเฉเจ เจเฉฐเจธเจเจพเจฒ เจเจฐเจจเจพ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจนเฉเฅค เจเฉฑเจ เจฐเฉเจ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจคเฉเจฐ เจคเฉ เจเจน เจธเจญ เจเจฒเจพเจเจฃเจพ เจนเจฎเฉเจธเจผเจพเจ เจเฉฑเจ เจฌเฉเจฐเจพ เจตเจฟเจเจพเจฐ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจเจธ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจตเฉฑเจเจฐเจพ เจเจชเจญเฉเจเจคเจพ เจฌเจฃเจพเจเจฃ เจ เจคเฉ เจเจธเจฆเฉ เจ เจงเจฟเจเจพเจฐเจพเจ เจจเฉเฉฐ เจธเฉฐเจฐเจเจฟเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ, เจคเฉเจนเจพเจจเฉเฉฐ เจธเจพเจกเฉ เจเฉเจก เจจเฉเฉฐ เจธเจฐเจตเจฐ 'เจคเฉ เจ เจชเจฒเฉเจก เจเจฐเจจ, nginx, postgres, เจเจฆเจฟ เจฒเจ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจจเจเจฒ เจเจฐเจจ เจ เจคเฉ เจเจน เจธเจพเจฐเฉเจเจ เจธเฉเจตเจพเจตเจพเจ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจจเจคเฉเจเฉ เจตเจเฉเจ, เจเจพเจฐเจตเจพเจเจเจ เจฆเจพ เจเฉเจฐเจฎ เจนเฉเจ เจฒเจฟเจเฉ เจ เจจเฉเจธเจพเจฐ เจนเฉ:
- เจฐเฉเจ เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจฒเจพเจเจเจจ เจเจฐเฉ
- เจธเจฟเจธเจเจฎ เจชเฉเจเฉเจ เจเฉฐเจธเจเจพเจฒ เจเจฐเฉ
- เจเฉฑเจ เจจเจตเจพเจ เจเจชเจญเฉเจเจคเจพ เจฌเจฃเจพเจ, เจ เจงเจฟเจเจพเจฐเจพเจ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจเจฐเฉ, ssh เจเฉเฉฐเจเฉ
- เจธเจฟเจธเจเจฎ เจชเฉเจเฉเจเจพเจ (nginx เจเจฆเจฟ) เจจเฉเฉฐ เจธเฉฐเจฐเจเจฟเจค เจเจฐเฉ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจ
- เจ เจธเฉเจ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจชเจญเฉเจเจคเจพ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ (เจคเฉเจธเฉเจ เจคเฉเจฐเฉฐเจค เจเฉฑเจ เจกเฉเจเจพเจฌเฉเจธ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ)
- เจเฉฑเจ เจจเจตเฉเจ เจเจชเจญเฉเจเจคเจพ เจตเจเฉเจ เจฒเฉเจเจเจจ เจเจฐเฉ
- rbenv เจ เจคเฉ ruby โโเจเฉฐเจธเจเจพเจฒ เจเจฐเฉ
- เจฌเฉฐเจกเจฒ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
- เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเฉเจก เจ เฉฑเจชเจฒเฉเจก เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
- Puma เจธเจฐเจตเจฐ เจจเฉเฉฐ เจฒเจพเจเจ เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเจเจฐเฉ เจชเฉเจพเจ เจเฉเจชเจฟเจธเจเฉเจฐเจพเจจเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจ, เจเฉฑเจเฉ-เจเฉฑเจ เจฌเจเจธเฉ เจคเฉเจ เจฌเจพเจนเจฐ เจเจน เจฐเฉเจฒเฉเจเจผ เจกเจพเจเจฐเฉเจเจเจฐเฉเจเจ เจตเจฟเฉฑเจ เจเฉเจก เจฆเฉ เจจเจเจฒ เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจธเจซเจฒ เจคเฉเจจเจพเจคเฉ 'เจคเฉ เจธเจฟเจฎเจฒเจฟเฉฐเจ เจจเจพเจฒ เจฐเฉเจฒเฉเจเจผ เจจเฉเฉฐ เจธเจตเจฟเจ เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจธเจพเจเจเฉ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจคเฉเจ เจเฉเจเจซเจฟเจเจธ เจเจพเจชเฉ เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจชเฉเจฎเจพ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจเจฆเจฟเฅค เจเจน เจธเจญ Ansible เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจชเจฐ เจเจฟเจเจ?
เจซเจพเจเจฒ เจฌเจฃเจคเจฐ
เจเจตเจพเจฌเจฆเฉเจน เจธเจเจค เจนเฉ
เจธเจงเจพเจฐเจจ เจชเจฒเฉเจฌเฉเฉฑเจ
เจชเจฒเฉเจฌเฉเฉฑเจ เจเฉฑเจ yml เจซเจพเจเจฒ เจนเฉ เจเฉ, เจตเจฟเจธเจผเฉเจธเจผ เจธเฉฐเจเฉเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจตเจฐเจฃเจจ เจเจฐเจฆเฉ เจนเฉ เจเจฟ Ansible เจจเฉเฉฐ เจเฉ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจ เจคเฉ เจเจฟเจตเฉเจ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเจ เจชเจนเจฟเจฒเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจฌเจฃเจพเจเจ เจเฉ เจเฉเจ เจจเจนเฉเจ เจเจฐเจฆเฉ:
---
- name: Simple playbook
hosts: all
เจเฉฑเจฅเฉ เจ
เจธเฉเจ เจธเจฟเจฐเจซเจผ เจเจน เจเจนเจฟเฉฐเจฆเฉ เจนเจพเจ เจเจฟ เจธเจพเจกเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจจเฉเฉฐ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ Simple Playbook
เจ
เจคเฉ เจเจน เจเจฟ เจเจธเจฆเฉ เจธเจฎเฉฑเจเจฐเฉ เจจเฉเฉฐ เจธเจพเจฐเฉ เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจฒเจ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจ
เจธเฉเจ เจเจธเจจเฉเฉฐ /ansible เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจจเจพเจฎ เจจเจพเจฒ เจธเฉเจต เจเจฐ เจธเจเจฆเฉ เจนเจพเจ playbook.yml
เจ
เจคเฉ เจเจฒเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉ:
ansible-playbook ./playbook.yml
PLAY [Simple Playbook] ************************************************************************************************************************************
skipping: no hosts matched
เจเจตเจพเจฌเจฆเฉเจน เจเจนเจฟเฉฐเจฆเจพ เจนเฉ เจเจฟ เจเจน เจเจฟเจธเฉ เจตเฉ เจฎเฉเจเจผเจฌเจพเจจ เจจเฉเฉฐ เจจเจนเฉเจ เจเจพเจฃเจฆเจพ เจเฉ เจธเจพเจฐเฉ เจธเฉเจเฉ เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจตเจฟเฉฑเจ เจธเฉเจเฉเจฌเฉฑเจง เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ
เจเจฒเฉ เจเจธเจจเฉเฉฐ เจเจธเฉ เจเจตเจพเจฌเจฆเฉเจน เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจฌเจฃเจพเจเจ:
123.123.123.123
เจเจธ เจคเจฐเฉเจนเจพเจ เจ
เจธเฉเจ เจธเจฟเจฐเจซเจผ เจนเฉเจธเจ เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจฆเฉ เจนเจพเจ (เจเจฆเจฐเจธเจผ เจคเฉเจฐ 'เจคเฉ เจเฉเจธเจเจฟเฉฐเจ เจฒเจ เจธเจพเจกเฉ VPS เจฆเจพ เจฎเฉเจเจผเจฌเจพเจจ, เจเจพเจ เจคเฉเจธเฉเจ เจฒเฉเจเจฒเจนเฉเจธเจ เจจเฉเฉฐ เจฐเจเจฟเจธเจเจฐ เจเจฐ เจธเจเจฆเฉ เจนเฉ) เจ
เจคเฉ เจเจธ เจจเฉเฉฐ เจจเจพเจฎ เจนเฉเจ เจธเฉเจต เจเจฐเจฆเฉ เจนเจพเจเฅค inventory
.
เจคเฉเจธเฉเจ เจเฉฑเจ เจเจจเจตเฉเจเจฐเฉ เจซเจพเจเจฒ เจจเจพเจฒ เจเจตเจพเจฌเจฆเฉเจน เจเจฒเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐ เจธเจเจฆเฉ เจนเฉ:
ansible-playbook ./playbook.yml -i inventory
PLAY [Simple Playbook] ************************************************************************************************************************************
TASK [Gathering Facts] ************************************************************************************************************************************
PLAY RECAP ************************************************************************************************************************************
เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจจเจฟเจธเจผเจเจฟเจค เจนเฉเจธเจ เจคเฉฑเจ ssh เจชเจนเฉเฉฐเจ เจนเฉ, เจคเจพเจ ansible เจฐเจฟเจฎเฉเจ เจธเจฟเจธเจเจฎ เจฌเจพเจฐเฉ เจเจพเจฃเจเจพเจฐเฉ เจจเฉเฉฐ เจเจจเฉเจเจ เจ เจคเฉ เจเจเฉฑเจคเจฐ เจเจฐเฉเจเจพเฅค (เจกเจฟเจซเจพเจฒเจ เจเจพเจธเจ [เจเฉเจฆเจฐเจฟเฉฐเจ เจซเฉเจเจเจธ]) เจเจฟเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจเจน เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ (เจชเจฒเฉ เจฐเฉเจเฉเจช) 'เจคเฉ เจเฉฑเจ เจเฉเจเฉ เจฐเจฟเจชเฉเจฐเจ เจฆเฉเจตเฉเจเจพเฅค
เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ, เจเฉเจจเฉเจเจธเจผเจจ เจเจชเจญเฉเจเจคเจพ เจจเจพเจฎ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉ เจเจฟเจธเจฆเฉ เจคเจนเจฟเจค เจคเฉเจธเฉเจ เจธเจฟเจธเจเจฎ เจตเจฟเฉฑเจ เจฒเจพเจเจเจจ เจเฉเจคเจพ เจนเฉเฅค เจเจน เจธเฉฐเจญเจพเจตเจค เจคเฉเจฐ 'เจคเฉ เจฎเฉเจเจผเจฌเจพเจจ 'เจคเฉ เจจเจนเฉเจ เจนเฉเจตเฉเจเจพเฅค เจชเจฒเฉเจฌเฉเฉฑเจ เจซเจพเจเจฒ เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเจฟ remote_user เจกเจพเจเจฐเฉเจเจเจฟเจต เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจจเฉเจเจ เจเจฐเจจ เจฒเจ เจเจฟเจธ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจตเจฐเจคเจฃเจพ เจนเฉเฅค เจจเจพเจฒ เจนเฉ, เจฐเจฟเจฎเฉเจ เจธเจฟเจธเจเจฎ เจฌเจพเจฐเฉ เจเจพเจฃเจเจพเจฐเฉ เจคเฉเจนเจพเจกเฉ เจฒเจ เจ เจเจธเจฐ เจฌเฉเจฒเฉเฉเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเจธเจจเฉเฉฐ เจเจเฉฑเจ เจพ เจเจฐเจจ เจตเจฟเฉฑเจ เจธเจฎเจพเจ เจฌเจฐเจฌเจพเจฆ เจจเจนเฉเจ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพเฅค เจเจน เจเฉฐเจฎ เจตเฉ เจ เจฏเฉเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ:
---
- name: Simple playbook
hosts: all
remote_user: root
become: true
gather_facts: no
เจชเจฒเฉเจฌเฉเฉฑเจ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจเจฒเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉ เจ
เจคเฉ เจฏเจเฉเจจเฉ เจฌเจฃเจพเจ เจเจฟ เจเจจเฉเจเจธเจผเจจ เจเฉฐเจฎ เจเจฐ เจฐเจฟเจนเจพ เจนเฉเฅค (เจเฉเจเจฐ เจคเฉเจธเฉเจ เจฐเฉเจ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเฉเจคเจพ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจเฉ เจ
เจงเจฟเจเจพเจฐเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ become: true directive เจจเฉเฉฐ เจตเฉ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจฟเจตเฉเจ เจเจฟ เจฆเจธเจคเจพเจตเฉเจเจผ เจตเจฟเฉฑเจ เจฒเจฟเจเจฟเจ เจเจฟเจ เจนเฉ: become set to โtrueโ/โyesโ to activate privilege escalation.
เจนเจพเจฒเจพเจเจเจฟ เจเจน เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจธเจชเฉฑเจธเจผเจ เจจเจนเฉเจ เจนเฉ เจเจฟ เจเจฟเจเจ)เฅค
เจธเจผเจพเจเจฆ เจคเฉเจธเฉเจ เจเจธ เจคเฉฑเจฅ เจฆเฉ เจเจพเจฐเจจ เจเฉฑเจ เจเจฒเจคเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเฉเจเฉ เจเจฟ ansible เจชเจพเจเจฅเจจ เจฆเฉเจญเจพเจธเจผเฉเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจจเจนเฉเจ เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจซเจฟเจฐ เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ:
ansible_python_interpreter: /usr/bin/python3
เจคเฉเจธเฉเจ เจเจฎเจพเจเจก เจจเจพเจฒ เจชเจคเจพ เจฒเจเจพ เจธเจเจฆเฉ เจนเฉ เจเจฟ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ python เจเจฟเฉฑเจฅเฉ เจนเฉ whereis python
.
เจธเจฟเจธเจเจฎ เจชเฉเจเฉเจ เจเฉฐเจธเจเจพเจฒ เจเจฐเจจเจพ
Ansible เจฆเฉ เจธเจเฉเจเจกเจฐเจก เจกเจฟเจธเจเฉเจฐเฉเจฌเจฟเจเจธเจผเจจ เจตเจฟเฉฑเจ เจตเฉฑเจ-เจตเฉฑเจ เจธเจฟเจธเจเจฎ เจชเฉเจเฉเจเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจฎเฉเจกเฉเจเจฒ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ เจนเจจ, เจเจธเจฒเจ เจธเจพเจจเฉเฉฐ เจเจฟเจธเฉ เจตเฉ เจเจพเจฐเจจ เจเจฐเจเฉ เจฌเฉเจธเจผ เจธเจเฉเจฐเจฟเจชเจเจพเจ เจฒเจฟเจเจฃ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฅค เจนเฉเจฃ เจธเจพเจจเฉเฉฐ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจ
เฉฑเจชเจกเฉเจ เจเจฐเจจ เจ
เจคเฉ เจธเจฟเจธเจเจฎ เจชเฉเจเฉเจ เจเฉฐเจธเจเจพเจฒ เจเจฐเจจ เจฒเจ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจฎเฉเจกเฉเจเจฒ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจฎเฉเจฐเฉ เจเฉเจฒ เจฎเฉเจฐเฉ VPS 'เจคเฉ เจเจฌเฉฐเจเฉ เจฒเฉเจจเจเจธ เจนเฉ, เจเจธเจฒเจ เจฎเฉเจฐเฉ เจฆเฉเจเจฐเจพ เจตเจฐเจคเฉ เจเจ เจชเฉเจเฉเจเจพเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจ เจฒเจ apt-get
ะธ
เจเจ เจธเจพเจกเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจจเฉเฉฐ เจชเจนเจฟเจฒเฉ เจเฉฐเจฎเจพเจ เจฆเฉ เจจเจพเจฒ เจชเฉเจฐเจ เจเจฐเฉเจ:
---
- name: Simple playbook
hosts: all
remote_user: root
become: true
gather_facts: no
tasks:
- name: Update system
apt: update_cache=yes
- name: Install system dependencies
apt:
name: git,nginx,redis,postgresql,postgresql-contrib
state: present
เจเจพเจธเจ เจฌเจฟเจฒเจเฉเจฒ เจเจน เจเฉฐเจฎ เจนเฉ เจเฉ เจเจตเจพเจฌเฉ เจฐเจฟเจฎเฉเจ เจธเจฐเจตเจฐเจพเจ 'เจคเฉ เจเจฐเฉเจเจพเฅค เจ
เจธเฉเจ เจเฉฐเจฎ เจจเฉเฉฐ เจเฉฑเจ เจจเจพเจฎ เจฆเจฟเฉฐเจฆเฉ เจนเจพเจ เจคเจพเจ เจเฉ เจ
เจธเฉเจ เจฒเฉเจ เจตเจฟเฉฑเจ เจเจธเจฆเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจจเฉเฉฐ เจเฉเจฐเฉเจ เจเจฐ เจธเจเฉเจเฅค เจ
เจคเฉ เจ
เจธเฉเจ เจเฉฑเจ เจเจพเจธ เจฎเฉเจกเฉเจเจฒ เจฆเฉ เจธเฉฐเจเฉเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจตเจฐเจฃเจจ เจเจฐเจฆเฉ เจนเจพเจ, เจเจธเจจเฉเฉฐ เจเฉ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจธ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ apt: update_cache=yes
- apt เจฎเฉเจกเฉเจเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจธเจฟเจธเจเจฎ เจชเฉเจเฉเจเจพเจ เจจเฉเฉฐ เจ
เจชเจกเฉเจ เจเจฐเจจ เจฒเจ เจเจนเจฟเฉฐเจฆเจพ เจนเฉเฅค เจฆเฉเจเฉ เจเจฎเจพเจเจก เจฅเฉเฉเฉ เจนเฉเจฐ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉ. เจ
เจธเฉเจ เจชเฉเจเฉเจเจพเจ เจฆเฉ เจธเฉเจเฉ apt เจฎเฉเจกเฉเจเจฒ เจจเฉเฉฐ เจญเฉเจเจฆเฉ เจนเจพเจ เจ
เจคเฉ เจเจนเจฟเฉฐเจฆเฉ เจนเจพเจ เจเจฟ เจเจน เจนเจจ state
เจฌเจฃเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ present
, เจญเจพเจต, เจ
เจธเฉเจ เจเจนเจฟเฉฐเจฆเฉ เจนเจพเจ เจเจฟ เจเจน เจชเฉเจเฉเจ เจเฉฐเจธเจเจพเจฒ เจเจฐเฉเฅค เจเจธเฉ เจคเจฐเฉเจนเจพเจ, เจ
เจธเฉเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฎเจฟเจเจพเจเจฃ เจฒเจ เจเจนเจฟ เจธเจเจฆเฉ เจนเจพเจ, เจเจพเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒ เจเฉ เจ
เจชเจกเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ state
. เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจงเจฟเจเจจ เจฆเจฟเจ เจเจฟ เจฐเฉเจฒเจพเจ เจฒเจ postgresql เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจธเจพเจจเฉเฉฐ postgresql-contrib เจชเฉเจเฉเจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเฉ เจ
เจธเฉเจ เจนเฉเจฃ เจเฉฐเจธเจเจพเจฒ เจเจฐ เจฐเจนเฉ เจนเจพเจเฅค เจฆเฉเจฌเจพเจฐเจพ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจเจพเจฃเจจ เจ
เจคเฉ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ; เจเจตเจพเจฌเจฆเฉเจน เจเจชเจฃเฉ เจเจช เจเจน เจจเจนเฉเจ เจเจฐเฉเจเจพ.
เจชเจฒเฉเจฌเฉเฉฑเจ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจเจฒเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉ เจ เจคเฉ เจเจพเจเจ เจเจฐเฉ เจเจฟ เจชเฉเจเฉเจ เจเฉฐเจธเจเจพเจฒ เจนเจจเฅค
เจจเจตเฉเจ เจเจชเจญเฉเจเจคเจพ เจฌเจฃเจพเจเจฃเจพ.
เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ, Ansible เจเฉเจฒ เจเฉฑเจ เจฎเฉเจกเฉเจเจฒ เจตเฉ เจนเฉ - เจเจชเจญเฉเจเจคเจพ. เจเจฒเฉ เจเฉฑเจ เจนเฉเจฐ เจเฉฐเจฎ เจเฉเฉเฉเจ (เจฎเฉเจ เจชเจฒเฉเจฌเฉเฉฑเจ เจฆเฉ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจเจพเจฃเฉ-เจชเจเจพเจฃเฉ เจนเจฟเฉฑเจธเฉ เจจเฉเฉฐ เจเจฟเฉฑเจชเจฃเฉเจเจ เจฆเฉ เจชเจฟเฉฑเจเฉ เจฒเฉเจเจพ เจฆเจฟเฉฑเจคเจพ เจนเฉ เจคเจพเจ เจเฉ เจนเจฐ เจตเจพเจฐ เจเจธเจจเฉเฉฐ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจเจพเจชเฉ เจจเจพ เจเฉเจคเจพ เจเจพ เจธเจเฉ):
---
- name: Simple playbook
# ...
tasks:
# ...
- name: Add a new user
user:
name: my_user
shell: /bin/bash
password: "{{ 123qweasd | password_hash('sha512') }}"
เจ เจธเฉเจ เจเฉฑเจ เจจเจตเจพเจ เจเจชเจญเฉเจเจคเจพ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ, เจเจธเจฆเฉ เจฒเจ เจเฉฑเจ เจธเจผเฉเฉฑเจฒ เจ เจคเฉ เจชเจพเจธเจตเจฐเจก เจธเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค เจ เจคเฉ เจซเจฟเจฐ เจ เจธเฉเจ เจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจตเจฟเฉฑเจ เจเจฒเฉ เจเจพเจเจฆเฉ เจนเจพเจ. เจเฉ เจเฉ เจตเฉฑเจ-เจตเฉฑเจ เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจฒเจ เจเจชเจญเฉเจเจคเจพ เจจเจพเจฎ เจตเฉฑเจเจฐเฉ เจนเฉเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ? เจ เจคเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจตเจฟเฉฑเจ เจธเจชเจธเจผเจ เจเฉเจเจธเจ เจตเจฟเฉฑเจ เจชเจพเจธเจตเจฐเจก เจธเจเฉเจฐ เจเจฐเจจเจพ เจเฉฑเจ เจฌเจนเฉเจค เจนเฉ เจฎเจพเฉเจพ เจตเจฟเจเจพเจฐ เจนเฉเฅค เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ, เจเจ เจฏเฉเจเจผเจฐเจจเฉเจฎ เจ เจคเฉ เจชเจพเจธเจตเจฐเจก เจจเฉเฉฐ เจตเฉเจฐเฉเจเจฌเจฒ เจตเจฟเฉฑเจ เจชเจพ เจฆเฉเจเจ, เจ เจคเฉ เจฒเฉเจ เจฆเฉ เจ เฉฐเจค เจตเจฟเฉฑเจ เจฎเฉเจ เจฆเจฟเจเจพเจตเจพเจเจเจพ เจเจฟ เจชเจพเจธเจตเจฐเจก เจจเฉเฉฐ เจเจฟเจตเฉเจ เจเจจเจเฉเจฐเจฟเจชเจ เจเจฐเจจเจพ เจนเฉเฅค
---
- name: Simple playbook
# ...
tasks:
# ...
- name: Add a new user
user:
name: "{{ user }}"
shell: /bin/bash
password: "{{ user_password | password_hash('sha512') }}"
เจตเฉเจฐเฉเจเจฌเจฒ เจกเจฌเจฒ เจเจฐเจฒเฉ เจฌเจฐเฉเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจตเจฟเฉฑเจ เจธเฉเฉฑเจ เจเฉเจคเฉ เจเจ เจนเจจเฅค
เจ เจธเฉเจ เจตเจธเจคเฉ เจธเฉเจเฉ เจตเจฟเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจฆเฉ เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจฆเจฐเจธเจพเจตเจพเจเจเฉ:
123.123.123.123
[all:vars]
user=my_user
user_password=123qweasd
เจจเจฟเจฐเจฆเฉเจธเจผ เจตเฉฑเจฒ เจงเจฟเจเจจ เจฆเจฟเจ [all:vars]
- เจเจน เจเจนเจฟเฉฐเจฆเจพ เจนเฉ เจเจฟ เจเฉเจเจธเจ เจฆเจพ เจ
เจเจฒเจพ เจฌเจฒเจพเจ เจตเฉเจฐเฉเจเจฌเจฒ (เจตเจฐ) เจนเฉ เจ
เจคเฉ เจเจน เจธเจพเจฐเฉ เจฎเฉเจเจผเจฌเจพเจจเจพเจ (เจธเจพเจฐเฉ) 'เจคเฉ เจฒเจพเจเฉ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค
เจกเจฟเจเจผเจพเจเจจ เจตเฉ เจฆเจฟเจฒเจเจธเจช เจนเฉ "{{ user_password | password_hash('sha512') }}"
. เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ เจเจตเจพเจฌเจฆเฉเจน เจเจชเจญเฉเจเจคเจพ เจฆเฉเจเจฐเจพ เจธเจฅเจพเจชเจฟเจค เจจเจนเฉเจ เจเจฐเจฆเจพ เจนเฉ user_add
เจเจฟเจตเฉเจ เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจเจฐเฉเจเฉเฅค เจ
เจคเฉ เจเจน เจธเจพเจฐเฉ เจกเฉเจเจพ เจจเฉเฉฐ เจธเจฟเฉฑเจงเจพ เจธเฉเจฐเฉฑเจเจฟเจ
เจค เจเจฐเจฆเจพ เจนเฉ, เจเจธ เจฒเจ เจธเจพเจจเฉเฉฐ เจชเจพเจธเจตเจฐเจก เจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจนเฉเจธเจผ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ, เจเฉ เจเจฟ เจเจน เจเจฎเจพเจเจก เจเจฐเจฆเฉ เจนเฉเฅค
เจเจ เจเจชเจฃเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ sudo เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเจฐเฉเจเฅค เจนเจพเจฒเจพเจเจเจฟ, เจเจธ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจธเจพเจจเฉเฉฐ เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเจฟ เจ เจเจฟเจนเจพ เจเฉเจ เจธเจฎเฉเจน เจฎเฉเจเฉเจฆ เจนเฉ เจเจฟเจเจเจเจฟ เจเฉเจ เจตเฉ เจธเจพเจกเฉ เจฒเจ เจ เจเจฟเจนเจพ เจจเจนเฉเจ เจเจฐเฉเจเจพ:
---
- name: Simple playbook
# ...
tasks:
# ...
- name: Ensure a 'sudo' group
group:
name: sudo
state: present
- name: Add a new user
user:
name: "{{ user }}"
shell: /bin/bash
password: "{{ user_password | password_hash('sha512') }}"
groups: "sudo"
เจนเจฐ เจเฉเจเจผ เจเจพเจซเจผเฉ เจธเจงเจพเจฐเจจ เจนเฉ, เจธเจพเจกเฉ เจเฉเจฒ เจเจฐเฉเฉฑเจช เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉฑเจ เจธเจฎเฉเจน เจฎเฉเจกเฉเจเจฒ เจตเฉ เจนเฉ, เจเจฟเจธเจฆเจพ เจธเฉฐเจเฉเจเจธ apt เจฆเฉ เจธเจฎเจพเจจ เจนเฉเฅค เจซเจฟเจฐ เจเจธ เจธเจฎเฉเจน เจจเฉเฉฐ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจ เจฒเจ เจเจพเจซเจผเฉ เจนเฉ (groups: "sudo"
).
เจเจธ เจเจชเจญเฉเจเจคเจพ เจฒเจ เจเฉฑเจ ssh เจเฉเฉฐเจเฉ เจเฉเฉเจจเจพ เจตเฉ เจฒเจพเจญเจฆเจพเจเจ เจนเฉ เจคเจพเจ เจเฉ เจ
เจธเฉเจ เจเจธเจจเฉเฉฐ เจฌเจฟเจจเจพเจ เจชเจพเจธเจตเจฐเจก เจฆเฉ เจตเจฐเจค เจเฉ เจฒเฉเจเจเจจ เจเจฐ เจธเจเฉเจ:
---
- name: Simple playbook
# ...
tasks:
# ...
- name: Ensure a 'sudo' group
group:
name: sudo
state: present
- name: Add a new user
user:
name: "{{ user }}"
shell: /bin/bash
password: "{{ user_password | password_hash('sha512') }}"
groups: "sudo"
- name: Deploy SSH Key
authorized_key:
user: "{{ user }}"
key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
state: present
เจเจธ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ, เจกเจฟเจเจผเจพเจเจจ เจฆเจฟเจฒเจเจธเจช เจนเฉ "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
โ เจเจน id_rsa.pub เจซเจพเจเจฒ (เจคเฉเจนเจพเจกเจพ เจจเจพเจฎ เจตเฉฑเจเจฐเจพ เจนเฉ เจธเจเจฆเจพ เจนเฉ) เจฆเฉ เจญเจพเจเจพเจ เจฆเฉ เจจเจเจฒ เจเจฐเจฆเจพ เจนเฉ, เจฏเจพเจจเฉ ssh เจเฉเฉฐเจเฉ เจฆเจพ เจเจจเจคเจ เจนเจฟเฉฑเจธเจพ เจ
เจคเฉ เจธเจฐเจตเจฐ เจเฉฑเจคเฉ เจเจชเจญเฉเจเจคเจพ เจฒเจ เจ
เจงเจฟเจเจพเจฐเจค เจเฉเฉฐเจเฉเจเจ เจฆเฉ เจธเฉเจเฉ เจตเจฟเฉฑเจ เจเจธเจจเฉเฉฐ เจ
เฉฑเจชเจฒเฉเจก เจเจฐเจฆเจพ เจนเฉเฅค
เจญเฉเจฎเจฟเจเจพเจตเจพเจ
เจตเจฐเจคเฉเจ เจฌเจฃเจพเจเจฃ เจฒเจ เจธเจพเจฐเฉ เจคเจฟเฉฐเจจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจเจธเจพเจจเฉ เจจเจพเจฒ เจเจพเจฐเจเจพเจ เจฆเฉ เจเฉฑเจ เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจธเจผเฉเจฐเฉเจฃเฉเจฌเฉฑเจง เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจ
เจคเฉ เจเจธ เจธเจฎเฉเจน เจจเฉเฉฐ เจฎเฉเฉฑเจ เจชเจฒเฉเจฌเฉเฉฑเจ เจคเฉเจ เจตเฉฑเจเจฐเจพ เจธเจเฉเจฐ เจเจฐเจจเจพ เจเฉฑเจ เจเฉฐเจเจพ เจตเจฟเจเจพเจฐ เจนเฉเจตเฉเจเจพ เจคเจพเจ เจเฉ เจเจน เจฌเจนเฉเจค เจตเฉฑเจกเจพ เจจเจพ เจนเฉเจตเฉเฅค เจเจธ เจฎเฉฐเจคเจต เจฒเจ, Ansible เจเฉเจฒ เจนเฉ
เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจ เจเจ เจซเจพเจเจฒ เจขเจพเจเจเฉ เจฆเฉ เจ
เจจเฉเจธเจพเจฐ, เจฐเฉเจฒ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจฐเฉเจฒ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจฐเฉฑเจเฉ เจเจพเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเจจ, เจนเจฐเฉเจ เจฐเฉเจฒ เจฒเจ เจเฉฑเจเฉ เจจเจพเจฎ เจฆเฉ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจเจพเจธเจ, เจซเจพเจเจฒเจพเจ, เจเฉเจเจชเจฒเฉเจเจธ, เจเจฆเจฟ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฆเฉ เจ
เฉฐเจฆเจฐเฅค
เจเจ เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจคเจฐ เจฌเจฃเจพเจเจ: ./ansible/roles/user/tasks/main.yml
(เจฎเฉเฉฑเจ เจฎเฉเฉฑเจ เจซเจพเจเจฒ เจนเฉ เจเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจจเจพเจฒ เจเจจเฉเจเจ เจนเฉเจฃ 'เจคเฉ เจฒเฉเจก เจ
เจคเฉ เจเจฒเจพเจเจ เจเจพเจตเฉเจเจพ; เจนเฉเจฐ เจฐเฉเจฒ เจซเจพเจเจฒเจพเจ เจเจธ เจจเจพเจฒ เจเจจเฉเจเจ เจเฉเจคเฉเจเจ เจเจพ เจธเจเจฆเฉเจเจ เจนเจจ)เฅค เจนเฉเจฃ เจคเฉเจธเฉเจ เจเจชเจญเฉเจเจคเจพ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจธเจพเจฐเฉ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจเจธ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐ เจธเจเจฆเฉ เจนเฉ:
# Create user and add him to groups
- name: Ensure a 'sudo' group
group:
name: sudo
state: present
- name: Add a new user
user:
name: "{{ user }}"
shell: /bin/bash
password: "{{ user_password | password_hash('sha512') }}"
groups: "sudo"
- name: Deploy SSH Key
authorized_key:
user: "{{ user }}"
key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
state: present
เจฎเฉเฉฑเจ เจชเจฒเฉเจฌเฉเฉฑเจ เจตเจฟเฉฑเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจชเจญเฉเจเจคเจพ เจญเฉเจฎเจฟเจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ:
---
- name: Simple playbook
hosts: all
remote_user: root
gather_facts: no
tasks:
- name: Update system
apt: update_cache=yes
- name: Install system dependencies
apt:
name: git,nginx,redis,postgresql,postgresql-contrib
state: present
roles:
- user
เจจเจพเจฒ เจนเฉ, เจนเฉเจฐ เจธเจพเจฐเฉ เจเจพเจฐเจเจพเจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจ
เฉฑเจชเจกเฉเจ เจเจฐเจจเจพ เจธเจฎเจเจฆเจพเจฐ เจนเฉ เจธเจเจฆเจพ เจนเฉ; เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจคเฉเจธเฉเจ เจฌเจฒเจพเจ เจฆเจพ เจจเจพเจฎ เจฌเจฆเจฒ เจธเจเจฆเฉ เจนเฉ tasks
เจเจฟเจธ เจตเจฟเฉฑเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ pre_tasks
.
nginx เจธเฉเจ เจ เจช เจเจฐ เจฐเจฟเจนเจพ เจนเฉ
เจธเจพเจกเฉ เจเฉเจฒ เจชเจนเจฟเจฒเจพเจ เจนเฉ Nginx เจธเจฅเจพเจชเจฟเจค เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ; เจธเจพเจจเฉเฉฐ เจเจธเจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ. เจเจฒเฉ เจเจธ เจจเฉเฉฐ เจคเฉเจฐเฉฐเจค เจญเฉเจฎเจฟเจเจพ เจตเจฟเจ เจเจฐเฉเจ. เจเจ เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจคเจฐ เจฌเจฃเจพเจเจ:
- ansible
- roles
- nginx
- files
- tasks
- main.yml
- templates
เจนเฉเจฃ เจธเจพเจจเฉเฉฐ เจซเจพเจเจฒเจพเจ เจ เจคเฉ เจเฉเจเจชเจฒเฉเจเจธ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจนเจจเจพเจ เจตเจฟเจเจเจพเจฐ เจซเจฐเจ เจเจน เจนเฉ เจเจฟ เจเจตเจพเจฌเจฆเฉเจน เจซเจพเจเจฒเจพเจ เจฆเฉ เจธเจฟเฉฑเจงเฉ เจจเจเจฒ เจเจฐเจฆเจพ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ เจนเฉ. เจ เจคเฉ เจเฉเจเจชเจฒเฉเจเจธ เจตเจฟเฉฑเจ j2 เจเจเจธเจเฉเจเจธเจผเจจ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ เจ เจคเฉ เจเจน เจเฉฑเจเฉ เจกเจฌเจฒ เจเจฐเจฒเฉ เจฌเจฐเฉเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจตเฉเจฐเฉเจเจฌเจฒ เจฎเฉเฉฑเจฒเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจจเฅค
เจเจฒเฉ nginx เจจเฉเฉฐ เจเจจ เจฏเฉเจ เจเจฐเฉเจ main.yml
เจซเจพเจเจฒเฅค เจเจธเจฆเฉ เจฒเจ เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ systemd เจฎเฉเจกเฉเจเจฒ เจนเฉ:
# Copy nginx configs and start it
- name: enable service nginx and start
systemd:
name: nginx
state: started
enabled: yes
เจเฉฑเจฅเฉ เจ
เจธเฉเจ เจจเจพ เจธเจฟเจฐเจซ เจเจน เจเจนเจฟเฉฐเจฆเฉ เจนเจพเจ เจเจฟ nginx เจจเฉเฉฐ เจธเจผเฉเจฐเฉ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ (เจญเจพเจต, เจ
เจธเฉเจ เจเจธเจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ), เจชเจฐ เจ
เจธเฉเจ เจคเฉเจฐเฉฐเจค เจเจนเจฟเฉฐเจฆเฉ เจนเจพเจ เจเจฟ เจเจน เจธเจฎเจฐเฉฑเจฅ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ.
เจเจ เจนเฉเจฃ เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒเจพเจ เจฆเฉ เจจเจเจฒ เจเจฐเฉเจ:
# Copy nginx configs and start it
- name: enable service nginx and start
systemd:
name: nginx
state: started
enabled: yes
- name: Copy the nginx.conf
copy:
src: nginx.conf
dest: /etc/nginx/nginx.conf
owner: root
group: root
mode: '0644'
backup: yes
- name: Copy template my_app.conf
template:
src: my_app_conf.j2
dest: /etc/nginx/sites-available/my_app.conf
owner: root
group: root
mode: '0644'
เจ
เจธเฉเจ เจฎเฉเฉฑเจ nginx เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ (เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจธเจฟเฉฑเจงเฉ เจธเจฐเจตเจฐ เจคเฉเจ เจฒเฉ เจธเจเจฆเฉ เจนเฉ, เจเจพเจ เจเจธเจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจฒเจฟเจ เจธเจเจฆเฉ เจนเฉ)เฅค เจ
เจคเฉ เจธเจพเจเจเจพเจ_เจเจชเจฒเจฌเจง เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจธเจพเจกเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจซเจพเจเจฒ เจตเฉ (เจเจน เจเจผเจฐเฉเจฐเฉ เจจเจนเฉเจ เจนเฉ เจชเจฐ เจเจชเจฏเฉเจเฉ เจนเฉ)เฅค เจชเจนเจฟเจฒเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจซเจพเจเจฒเจพเจ เจฆเฉ เจจเจเจฒ เจเจฐเจจ เจฒเจ เจเจพเจชเฉ เจฎเฉเจกเฉเจเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ (เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ /ansible/roles/nginx/files/nginx.conf
). เจฆเฉเจเฉ เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจตเฉเจฐเฉเจเจฌเจฒ เจฆเฉ เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฆเฉ เจนเฉเจ, เจเฉเจเจชเจฒเฉเจ เจฆเฉ เจจเจเจฒ เจเจฐเจฆเฉ เจนเจพเจเฅค เจเฉเจเจชเจฒเฉเจ เจตเจฟเฉฑเจ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ /ansible/roles/nginx/templates/my_app.j2
). เจ
เจคเฉ เจเจน เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉ เจธเจเจฆเจพ เจนเฉ:
upstream {{ app_name }} {
server unix:{{ app_path }}/shared/tmp/sockets/puma.sock;
}
server {
listen 80;
server_name {{ server_name }} {{ inventory_hostname }};
root {{ app_path }}/current/public;
try_files $uri/index.html $uri.html $uri @{{ app_name }};
....
}
เจธเฉฐเจฎเจฟเจฒเจจเจพเจ เจตเฉฑเจฒ เจงเจฟเจเจจ เจฆเจฟเจ {{ app_name }}
, {{ app_path }}
, {{ server_name }}
, {{ inventory_hostname }}
โ เจเจน เจธเจพเจฐเฉ เจตเฉเจฐเฉเจเจฌเจฒ เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจฆเฉ เจฎเฉเฉฑเจฒ Ansible เจเจพเจชเฉ เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉเจเจชเจฒเฉเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจเจพเจฃเจเฉเฅค เจเจน เจฒเจพเจญเจฆเจพเจเจ เจนเฉ เจเฉเจเจฐ เจคเฉเจธเฉเจ เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจธเจฎเฉเจนเจพเจ เจฒเจ เจชเจฒเฉเจฌเฉเฉฑเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจ
เจธเฉเจ เจเจชเจฃเฉ เจตเจธเจคเฉ เจธเฉเจเฉ เจเฉเฉ เจธเจเจฆเฉ เจนเจพเจ:
[production]
123.123.123.123
[staging]
231.231.231.231
[all:vars]
user=my_user
user_password=123qweasd
[production:vars]
server_name=production
app_path=/home/www/my_app
app_name=my_app
[staging:vars]
server_name=staging
app_path=/home/www/my_stage
app_name=my_stage_app
เจเฉเจเจฐ เจ
เจธเฉเจ เจนเฉเจฃ เจเจชเจฃเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ, เจคเจพเจ เจเจน เจฆเฉเจตเฉเจ เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจฒเจ เจจเจฟเจธเจผเจเจฟเจค เจเจพเจฐเจ เจเจฐเฉเจเจพเฅค เจชเจฐ เจเจธเฉ เจธเจฎเฉเจ, เจเฉฑเจ เจธเจเฉเจเจฟเฉฐเจ เจนเฉเจธเจ เจฒเจ, เจตเฉเจฐเฉเจเจฌเจฒ เจชเฉเจฐเฉเจกเจเจธเจผเจจ เจจเจพเจฒเฉเจ เจตเฉฑเจเจฐเฉ เจนเฉเจฃเจเฉ, เจ
เจคเฉ เจจเจพ เจธเจฟเจฐเจซ เจฐเฉเจฒ เจ
เจคเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจตเจฟเฉฑเจ, เจฌเจฒเจเจฟ เจเจจเจเฉเจจเฉเจเจธ เจเฉเจเจซเจฟเจเจธ เจตเจฟเฉฑเจ เจตเฉเฅค {{ inventory_hostname }}
เจตเจธเจคเฉ เจธเฉเจเฉ เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจ เจเจพเจฃ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ - เจเจน
เจเฉ เจคเฉเจธเฉเจ เจเจ เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจฒเจ เจเฉฑเจ เจตเจธเจคเฉ เจซเจพเจเจฒ เจฐเฉฑเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ, เจชเจฐ เจธเจฟเจฐเจซ เจเฉฑเจ เจธเจฎเฉเจน เจฒเจ เจเจฒเจพเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ, เจคเจพเจ เจเจน เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจเจฎเจพเจเจก เจจเจพเจฒ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ:
ansible-playbook -i inventory ./playbook.yml -l "staging"
เจเฉฑเจ เจนเฉเจฐ เจตเจฟเจเจฒเจช เจตเฉฑเจ-เจตเฉฑเจ เจธเจฎเฉเจนเจพเจ เจฒเจ เจตเฉฑเจเจฐเฉเจเจ เจตเจธเจคเฉเจเจ เจฆเฉเจเจ เจซเจพเจเจฒเจพเจ เจนเฉเจฃ เจฆเจพ เจนเฉเฅค เจเจพเจ เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจตเฉฑเจ-เจตเฉฑเจ เจฎเฉเจเจผเจฌเจพเจจ เจนเจจ เจคเจพเจ เจคเฉเจธเฉเจ เจฆเฉ เจชเจนเฉเฉฐเจเจพเจ เจจเฉเฉฐ เจเฉเฉ เจธเจเจฆเฉ เจนเฉเฅค
เจเจฒเฉ nginx เจธเฉเจ เจ เจช เจเจฐเจจ เจฒเจ เจตเจพเจชเจธ เจเจฒเฉเจเฅค เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจซเจพเจเจฒเจพเจ เจฆเฉ เจจเจเจฒ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ, เจธเจพเจจเฉเฉฐ sites_available เจคเฉเจ my_app.conf เจตเจฟเฉฑเจ sitest_enabled เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจฟเจฎเจฒเจฟเฉฐเจ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจ เจคเฉ nginx เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐเฉ.
... # old code in mail.yml
- name: Create symlink to sites-enabled
file:
src: /etc/nginx/sites-available/my_app.conf
dest: /etc/nginx/sites-enabled/my_app.conf
state: link
- name: restart nginx
service:
name: nginx
state: restarted
เจเฉฑเจฅเฉ เจธเจญ เจเฉเจ เจธเจงเจพเจฐเจจ เจนเฉ - เจเฉฑเจ เจเจพเจซเจผเฉ เจฎเจฟเจเจฐเฉ เจธเฉฐเจเฉเจเจธ เจฆเฉ เจจเจพเจฒ เจฆเฉเจฌเจพเจฐเจพ เจเจตเจพเจฌเจฆเฉเจน เจฎเฉเจกเฉเจเจฒ. เจชเจฐ เจเฉฑเจ เจฌเจฟเฉฐเจฆเฉ เจนเฉ. เจนเจฐ เจตเจพเจฐ nginx เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐเจจ เจฆเจพ เจเฉเจ เจฎเจคเจฒเจฌ เจจเจนเฉเจ เจนเฉ. เจเฉ เจคเฉเจธเฉเจ เจฆเฉเจเจฟเจ เจนเฉ เจเจฟ เจ เจธเฉเจ เจเจฎเจพเจเจกเจพเจ เจจเจนเฉเจ เจฒเจฟเจเจฆเฉ เจเจฟเจตเฉเจ เจเจฟ: โเจเจธ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจเจฐเฉโ, เจธเฉฐเจเฉเจเจธ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ เจเจฟเจตเฉเจ โเจเจธ เจฆเฉ เจเจน เจ เจตเจธเจฅเจพ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉโเฅค เจ เจคเฉ เจ เจเจธเจฐ เจเจน เจฌเจฟเจฒเจเฉเจฒ เจเจธ เจคเจฐเฉเจนเจพเจ เจนเฉ เจเจฟ เจเจตเจพเจฌเจฆเฉเจน เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ. เจเฉเจเจฐ เจเจฐเฉเฉฑเจช เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฎเฉเจเฉเจฆ เจนเฉ, เจเจพเจ เจธเจฟเจธเจเจฎ เจชเฉเจเฉเจ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจนเฉ เจเฉฐเจธเจเจพเจฒ เจนเฉ, เจคเจพเจ ansible เจเจธเจฆเฉ เจเจพเจเจ เจเจฐเฉเจเจพ เจ เจคเฉ เจเฉฐเจฎ เจจเฉเฉฐ เจเฉฑเจก เจฆเฉเจตเฉเจเจพเฅค เจจเจพเจฒ เจนเฉ, เจซเจพเจเจฒเจพเจ เจฆเฉ เจจเจเจฒ เจจเจนเฉเจ เจเฉเจคเฉ เจเจพเจตเฉเจเฉ เจเฉเจเจฐ เจเจน เจธเจฐเจตเจฐ 'เจคเฉ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจฎเฉเจเฉเจฆ เจเฉเจเจผเจพเจ เจจเจพเจฒ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจฎเฉเจฒ เจเจพเจเจฆเฉเจเจ เจนเจจเฅค เจ เจธเฉเจ เจเจธเจฆเจพ เจซเจพเจเจฆเจพ เจเจ เจพ เจธเจเจฆเฉ เจนเจพเจ เจ เจคเฉ nginx เจจเฉเฉฐ เจธเจฟเจฐเจซ เจคเจพเจ เจนเฉ เจฐเฉเจธเจเจพเจฐเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจเฉเจเจฐ เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฟเจ เจเจฟเจ เจนเฉเฅค เจเจธเจฆเฉ เจฒเจ เจเฉฑเจ เจฐเจเจฟเจธเจเจฐ เจจเจฟเจฐเจฆเฉเจธเจผ เจนเฉ:
# Copy nginx configs and start it
- name: enable service nginx and start
systemd:
name: nginx
state: started
enabled: yes
- name: Copy the nginx.conf
copy:
src: nginx.conf
dest: /etc/nginx/nginx.conf
owner: root
group: root
mode: '0644'
backup: yes
register: restart_nginx
- name: Copy template my_app.conf
template:
src: my_app_conf.j2
dest: /etc/nginx/sites-available/my_app.conf
owner: root
group: root
mode: '0644'
register: restart_nginx
- name: Create symlink to sites-enabled
file:
src: /etc/nginx/sites-available/my_app.conf
dest: /etc/nginx/sites-enabled/my_app.conf
state: link
- name: restart nginx
service:
name: nginx
state: restarted
when: restart_nginx.changed
เจเฉเจเจฐ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจฌเจฆเจฒเจฆเฉ เจนเฉ, เจคเจพเจ เจเฉฑเจ เจเจพเจชเฉ เจฌเจฃเจพเจ เจเจพเจตเฉเจเฉ เจ
เจคเฉ เจตเฉเจฐเฉเจเจฌเจฒ เจฐเจเจฟเจธเจเจฐ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ restart_nginx
. เจ
เจคเฉ เจเฉเจตเจฒ เจคเจพเจ เจนเฉ เจเฉเจเจฐ เจเจน เจตเฉเจฐเฉเจเจฌเจฒ เจฐเจเจฟเจธเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ เจคเจพเจ เจธเฉเจตเจพ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
เจ เจคเฉ, เจฌเฉเจธเจผเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจฎเฉเฉฑเจ เจชเจฒเฉเจฌเฉเฉฑเจ เจตเจฟเฉฑเจ nginx เจฐเฉเจฒ เจจเฉเฉฐ เจเฉเฉเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ.
postgresql เจธเฉเฉฑเจเจ เฉฑเจช เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
เจธเจพเจจเฉเฉฐ postgresql เจจเฉเฉฐ systemd เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจธเฉ เจคเจฐเฉเจนเจพเจ เจธเจฎเจฐเฉฑเจฅ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจฟเจตเฉเจ เจ
เจธเฉเจ nginx เจจเจพเจฒ เจเฉเจคเฉ เจธเฉ, เจ
เจคเฉ เจเฉฑเจ เจเจชเจญเฉเจเจคเจพ เจตเฉ เจฌเจฃเจพเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟเจธเจฆเฉ เจตเจฐเจคเฉเจ เจ
เจธเฉเจ เจกเฉเจเจพเจฌเฉเจธ เจ
เจคเฉ เจกเฉเจเจพเจฌเฉเจธ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจจ เจฒเจ เจเจฐเจพเจเจเฉเฅค
เจเจ เจเฉฑเจ เจฐเฉเจฒ เจฌเจฃเจพเจเจ /ansible/roles/postgresql/tasks/main.yml
:
# Create user in postgresql
- name: enable postgresql and start
systemd:
name: postgresql
state: started
enabled: yes
- name: Create database user
become_user: postgres
postgresql_user:
name: "{{ db_user }}"
password: "{{ db_password }}"
role_attr_flags: SUPERUSER
- name: Create database
become_user: postgres
postgresql_db:
name: "{{ db_name }}"
encoding: UTF-8
owner: "{{ db_user }}"
เจฎเฉเจ เจเจน เจตเจฐเจฃเจจ เจจเจนเฉเจ เจเจฐเจพเจเจเจพ เจเจฟ เจตเจธเจคเฉ เจธเฉเจเฉ เจตเจฟเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจเฉเฉเจจเจพ เจนเฉ, เจเจน เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจ เจตเจพเจฐ เจเฉเจคเจพ เจเจพ เจเฉเฉฑเจเจพ เจนเฉ, เจจเจพเจฒ เจนเฉ postgresql_db เจ
เจคเฉ postgresql_user เจฎเฉเจกเฉเจเจฒ เจฆเจพ เจธเฉฐเจเฉเจเจธ. เจนเฉเจฐ เจเจพเจฃเจเจพเจฐเฉ เจฆเจธเจคเจพเจตเฉเจเจผ เจตเจฟเฉฑเจ เจฒเฉฑเจญเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ. เจเฉฑเจฅเฉ เจธเจญ เจคเฉเจ เจฆเจฟเจฒเจเจธเจช เจจเจฟเจฐเจฆเฉเจธเจผ เจนเฉ become_user: postgres
. เจคเฉฑเจฅ เจเจน เจนเฉ เจเจฟ เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ, เจธเจฟเจฐเจซ เจชเฉเจธเจเจเจฐเฉเจธ เจเจชเจญเฉเจเจคเจพ เจเฉเจฒ เจชเฉเจธเจเจเจฐเฉเจธเจเจฟเจเจฒ เจกเฉเจเจพเจฌเฉเจธ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจนเฉ เจ
เจคเฉ เจธเจฟเจฐเจซ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉเฅค เจเจน เจจเจฟเจฐเจฆเฉเจธเจผ เจธเจพเจจเฉเฉฐ เจเจธ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจคเจฐเจซเฉเจ เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ (เจเฉ เจธเจพเจกเฉ เจเฉเจฒ เจชเจนเฉเฉฐเจ เจนเฉ, เจเจผเจฐเฉเจฐ)เฅค
เจจเจพเจฒ เจนเฉ, เจคเฉเจนเจพเจจเฉเฉฐ เจกเจพเจเจพเจฌเฉเจธ เจคเฉฑเจ เจเฉฑเจ เจจเจตเฉเจ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจชเจนเฉเฉฐเจ เจฆเฉ เจเจเจฟเจ เจฆเฉเจฃ เจฒเจ pg_hba.conf เจตเจฟเฉฑเจ เจเฉฑเจ เจฒเจพเจเจจ เจเฉเฉเจจเฉ เจชเฉ เจธเจเจฆเฉ เจนเฉเฅค เจเจน เจเจธเฉ เจคเจฐเฉเจนเจพเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ เจเจฟเจตเฉเจ เจ
เจธเฉเจ nginx เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฌเจฆเจฒเจฟเจ เจนเฉเฅค
เจ เจคเฉ เจฌเฉเจธเจผเฉฑเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจฎเฉเฉฑเจ เจชเจฒเฉเจฌเฉเฉฑเจ เจตเจฟเฉฑเจ postgresql เจฐเฉเจฒ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
rbenv เจฆเฉเจเจฐเจพ เจฐเฉเจฌเฉ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ
Ansible เจเฉเจฒ rbenv เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจฎเฉเจกเฉเจเจฒ เจจเจนเฉเจ เจนเจจ, เจชเจฐ เจเจน เจเฉฑเจ git เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจจเฉเฉฐ เจเจฒเฉเจจ เจเจฐเจเฉ เจธเจฅเจพเจชเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจเจธ เจฒเจ, เจเจน เจธเจฎเฉฑเจธเจฟเจ เจธเจญ เจคเฉเจ เจเฉเจฐ-เจฎเจฟเจเจฐเฉ เจฌเจฃ เจเจพเจเจฆเฉ เจนเฉ. เจเจ เจเจธเจฆเฉ เจฒเจ เจเฉฑเจ เจฐเฉเจฒ เจฌเจฃเจพเจเจ /ansible/roles/ruby_rbenv/main.yml
เจ
เจคเฉ เจเจ เจเจธเจจเฉเฉฐ เจญเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเฉเจ:
# Install rbenv and ruby
- name: Install rbenv
become_user: "{{ user }}"
git: repo=https://github.com/rbenv/rbenv.git dest=~/.rbenv
เจ เจธเฉเจ เจเจนเจจเจพเจ เจเจฆเฉเจธเจผเจพเจ เจฒเจ เจฌเจฃเจพเจ เจเจ เจเจชเจฏเฉเจเจเจฐเจคเจพ เจฆเฉ เจ เจงเฉเจจ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจฆเฉเจฌเจพเจฐเจพ become_user เจกเจพเจเจฐเฉเจเจเจฟเจต เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค เจเจฟเจเจเจเจฟ rbenv เจจเฉเฉฐ เจเจธเจฆเฉ เจนเฉเจฎ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจเฉฐเจธเจเจพเจฒ เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจจเจพ เจเจฟ เจตเจฟเจธเจผเจต เจชเฉฑเจงเจฐ 'เจคเฉเฅค เจ เจคเฉ เจ เจธเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจจเฉเฉฐ เจเจฒเฉเจจ เจเจฐเจจ เจฒเจ git เจฎเฉเจกเฉเจเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ, เจฐเฉเจชเฉ เจ เจคเฉ เจกเฉเจธเจ เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจฆเฉ เจนเฉเจเฅค
เจ เฉฑเจเฉ, เจธเจพเจจเฉเฉฐ bashrc เจตเจฟเฉฑเจ rbenv init เจจเฉเฉฐ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจ เจ เจคเฉ PATH เจตเจฟเฉฑเจ rbenv เจจเฉเฉฐ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจธเจฆเฉ เจฒเจ เจธเจพเจกเฉ เจเฉเจฒ lineinfile เจฎเฉเจกเฉเจเจฒ เจนเฉ:
- name: Add rbenv to PATH
become_user: "{{ user }}"
lineinfile:
path: ~/.bashrc
state: present
line: 'export PATH="${HOME}/.rbenv/bin:${PATH}"'
- name: Add rbenv init to bashrc
become_user: "{{ user }}"
lineinfile:
path: ~/.bashrc
state: present
line: 'eval "$(rbenv init -)"'
เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉเฉฐ ruby_build เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
- name: Install ruby-build
become_user: "{{ user }}"
git: repo=https://github.com/rbenv/ruby-build.git dest=~/.rbenv/plugins/ruby-build
เจ เจคเฉ เจ เฉฐเจค เจตเจฟเฉฑเจ เจฐเฉเจฌเฉ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ. เจเจน rbenv เจฆเฉเจเจฐเจพ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจญเจพเจต, เจฌเจธ bash เจเจฎเจพเจเจก เจจเจพเจฒ:
- name: Install ruby
become_user: "{{ user }}"
shell: |
export PATH="${HOME}/.rbenv/bin:${PATH}"
eval "$(rbenv init -)"
rbenv install {{ ruby_version }}
args:
executable: /bin/bash
เจ เจธเฉเจ เจเจนเจฟเฉฐเจฆเฉ เจนเจพเจ เจเจฟ เจเจฟเจนเฉเฉ เจเจฎเจพเจเจก เจเจฒเจพเจเจฃเฉ เจนเฉ เจ เจคเฉ เจเจฟเจธ เจจเจพเจฒเฅค เจนเจพเจฒเจพเจเจเจฟ, เจเฉฑเจฅเฉ เจ เจธเฉเจ เจเจธ เจคเฉฑเจฅ เจจเฉเฉฐ เจฆเฉเจเจฆเฉ เจนเจพเจ เจเจฟ ansible เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ bashrc เจตเจฟเฉฑเจ เจฎเฉเจเฉเจฆ เจเฉเจก เจจเฉเฉฐ เจจเจนเฉเจ เจเจฒเจพเจเจเจฆเจพ เจนเฉเฅค เจเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ rbenv เจจเฉเฉฐ เจเจธเฉ เจธเจเฉเจฐเจฟเจชเจ เจตเจฟเฉฑเจ เจธเจฟเฉฑเจงเจพ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจจเจพ เจนเฉเจตเฉเจเจพเฅค
เจ เจเจฒเฉ เจธเจฎเฉฑเจธเจฟเจ เจเจธ เจคเฉฑเจฅ เจฆเฉ เจเจพเจฐเจจ เจนเฉ เจเจฟ เจธเจผเฉเฉฑเจฒ เจเจฎเจพเจเจก เจฆเฉ เจเฉฑเจ เจเจตเจพเจฌเจฆเฉเจน เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ เจเฉเจ เจธเจฅเจฟเจคเฉ เจจเจนเฉเจ เจนเฉเฅค เจฏเจพเจจเฉ เจฐเฉเจฌเฉ เจฆเจพ เจเจน เจธเฉฐเจธเจเจฐเจฃ เจเฉฐเจธเจเจพเจฒ เจนเฉ เจเจพเจ เจจเจนเฉเจ, เจเจธเจฆเฉ เจเฉเจ เจเจเฉเจฎเฉเจเจฟเจ เจเจพเจเจ เจจเจนเฉเจ เจนเฉเจตเฉเจเฉเฅค เจ เจธเฉเจ เจเจน เจเจชเจฃเฉ เจเจช เจเจฐ เจธเจเจฆเฉ เจนเจพเจ:
- name: Install ruby
become_user: "{{ user }}"
shell: |
export PATH="${HOME}/.rbenv/bin:${PATH}"
eval "$(rbenv init -)"
if ! rbenv versions | grep -q {{ ruby_version }}
then rbenv install {{ ruby_version }} && rbenv global {{ ruby_version }}
fi
args:
executable: /bin/bash
เจเฉ เจเฉเจ เจฌเจเจฟเจ เจนเฉ เจเจน เจฌเฉฐเจกเจฒเจฐ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ เจนเฉ:
- name: Install bundler
become_user: "{{ user }}"
shell: |
export PATH="${HOME}/.rbenv/bin:${PATH}"
eval "$(rbenv init -)"
gem install bundler
เจ เจคเฉ เจฆเฉเจฌเจพเจฐเจพ, เจธเจพเจกเฉ เจญเฉเจฎเจฟเจเจพ ruby_rbenv เจจเฉเฉฐ เจฎเฉเฉฑเจ เจชเจฒเฉเจฌเฉเฉฑเจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเจฐเฉเฅค
เจธเจพเจเจเฉเจเจ เจซเจพเจเจฒเจพเจเฅค
เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจธเฉเฉฑเจเจ
เฉฑเจช เจเฉฑเจฅเฉ เจชเฉเจฐเจพ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจ
เฉฑเจเฉ, เจเฉ เจเฉเจ เจฌเจเจฟเจ เจนเฉ เจเจน เจเฉเจชเจฟเจธเจเฉเจฐเจพเจจเฉ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพ เจนเฉ เจ
เจคเฉ เจเจน เจเจชเจฃเฉ เจเจช เจเฉเจก เจฆเฉ เจจเจเจฒ เจเจฐเฉเจเจพ, เจฒเฉเฉเฉเจเจฆเฉเจเจ เจกเจพเจเจฐเฉเจเจเจฐเฉเจเจ เจฌเจฃเจพเจเจเจพ เจ
เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจพเจเจ เจเจฐเฉเจเจพ (เจเฉ เจธเจญ เจเฉเจ เจธเจนเฉ เจคเจฐเฉเจนเจพเจ เจเฉเจเจซเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ)เฅค เจนเจพเจฒเจพเจเจเจฟ, capistrano เจจเฉเฉฐ เจ
เจเจธเจฐ เจตเจพเจงเฉ เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ database.yml
เจ .env
เจเจนเจจเจพเจ เจจเฉเฉฐ nginx เจฒเจ เจซเจพเจเจฒเจพเจ เจ
เจคเฉ เจเฉเจเจชเจฒเฉเจเจพเจ เจตเจพเจเจ เจนเฉ เจเจพเจชเฉ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ. เจเฉเจตเจฒ เจเฉฑเจ เจนเฉ เจธเฉเจเจฎเจคเจพ เจนเฉ. เจซเจพเจเจฒเจพเจ เจฆเฉ เจจเจเจฒ เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจนเจจเจพเจ เจฒเจ เจเฉฑเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฌเจฃเจคเจฐ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเฉเจ เจเจธ เจคเจฐเฉเจนเจพเจ:
# Copy shared files for deploy
- name: Ensure shared dir
become_user: "{{ user }}"
file:
path: "{{ app_path }}/shared/config"
state: directory
เจ เจธเฉเจ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเฉเจเจฐ เจฒเฉเฉ เจชเจตเฉ เจคเจพเจ เจเจตเจพเจฌเจฆเฉเจนเฉ เจเจชเจฃเฉ เจเจช เจนเฉ เจชเฉเจฐเฉเจเจ เจฌเจฃเจพ เจฒเจตเฉเจเฉเฅค
เจเจตเจพเจฌเจฆเฉเจน เจตเจพเจฒเจ
เจ
เจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจธ เจคเฉฑเจฅ เจฆเฉ เจธเจพเจนเจฎเจฃเฉ เจ เจเฉเฉฑเจเฉ เจนเจพเจ เจเจฟ เจตเฉเจฐเฉเจเจฌเจฒ เจตเจฟเฉฑเจ เจเฉเจชเจค เจกเฉเจเจพ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟเจตเฉเจ เจเจฟ เจเจชเจญเฉเจเจคเจพ เจฆเจพ เจชเจพเจธเจตเจฐเจกเฅค เจเฉ เจคเฉเจธเฉเจ เจฌเจฃเจพเจเจ เจนเฉ .env
เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ เจซเจพเจเจฒ, เจ
เจคเฉ database.yml
เจซเจฟเจฐ เจ
เจเจฟเจนเฉ เจนเฉเจฐ เจตเฉ เจจเจพเจเจผเฉเจ เจ
เฉฐเจเฉเฉ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเจจเฅค เจเจจเฉเจนเจพเจ เจจเฉเฉฐ เจญเฉเจเจฆเฉเจเจ เจ
เฉฑเจเจพเจ เจคเฉเจ เจเฉเจชเจพเจเจฃเจพ เจเฉฐเจเจพ เจนเฉเจตเฉเจเจพ. เจเจธ เจฎเจเจธเจฆ เจฒเจ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ
เจเจฒเฉ เจตเฉเจฐเฉเจเจฌเจฒ เจฒเจ เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจพเจเจ /ansible/vars/all.yml
(เจเฉฑเจฅเฉ เจคเฉเจธเฉเจ เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจธเจฎเฉเจนเจพเจ เจฒเจ เจตเฉฑเจ-เจตเฉฑเจ เจซเจพเจเจฒเจพเจ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ เจตเจธเจคเฉ เจธเฉเจเฉ เจตเจฟเฉฑเจ: production.yml, staging.yml, เจเจฆเจฟ)เฅค
เจธเจพเจฐเฉ เจตเฉเจฐเฉเจเจฌเจฒ เจเจฟเจจเฉเจนเจพเจ เจจเฉเฉฐ เจเจจเจเฉเจฐเจฟเจชเจ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ, เจจเฉเฉฐ เจฎเจฟเจเจฐเฉ yml เจธเฉฐเจเฉเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจธ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ:
# System vars
user_password: 123qweasd
db_password: 123qweasd
# ENV vars
aws_access_key_id: xxxxx
aws_secret_access_key: xxxxxx
aws_bucket: bucket_name
rails_secret_key_base: very_secret_key_base
เจเจฟเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจเจธ เจซเจพเจเจฒ เจจเฉเฉฐ เจเจฎเจพเจเจก เจจเจพเจฒ เจเจจเจเฉเจฐเจฟเจชเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ:
ansible-vault encrypt ./vars/all.yml
เจเฉเจฆเจฐเจคเฉ เจคเฉเจฐ 'เจคเฉ, เจเจจเจเฉเจฐเจฟเจชเจ เจเจฐเจจ เจตเฉเจฒเฉ, เจคเฉเจนเจพเจจเฉเฉฐ เจกเฉเจเฉเจฐเจฟเจชเจธเจผเจจ เจฒเจ เจเฉฑเจ เจชเจพเจธเจตเจฐเจก เจธเฉเฉฑเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค เจคเฉเจธเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ เจเจฟ เจเจธ เจเจฎเจพเจเจก เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ เจซเจพเจเจฒ เจฆเฉ เจ เฉฐเจฆเจฐ เจเฉ เจนเฉเจตเฉเจเจพ.
เจฆเฉ เจธเจนเจพเจเจคเจพ เจจเจพเจฒ ansible-vault decrypt
เจซเจพเจเจฒ เจจเฉเฉฐ เจกเฉเจเฉเจฐเจฟเจชเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจธเฉเจงเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจซเจฟเจฐ เจฆเฉเจฌเจพเจฐเจพ เจเจจเจเฉเจฐเจฟเจชเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจซเจผเจพเจเจฒ เจจเฉเฉฐ เจกเฉเจเฉเจฐเจฟเจชเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฅค เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจเจจเจเฉเจฐเจฟเจชเจเจก เจธเจเฉเจฐ เจเจฐเจฆเฉ เจนเฉ เจ
เจคเฉ เจฆเจฒเฉเจฒ เจจเจพเจฒ เจชเจฒเฉเจฌเฉเฉฑเจ เจจเฉเฉฐ เจเจฒเจพเจเจเจฆเฉ เจนเฉ --ask-vault-pass
. Ansible เจชเจพเจธเจตเจฐเจก เจฆเฉ เจฎเฉฐเจ เจเจฐเฉเจเจพ, เจตเฉเจฐเฉเจเจฌเจฒ เจฎเฉเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเฉเจเจพ, เจ
เจคเฉ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจเจพเฅค เจธเจพเจฐเจพ เจกเจพเจเจพ เจเจจเจเฉเจฐเจฟเจชเจเจก เจฐเจนเฉเจเจพเฅค
เจฎเฉเจเจผเจฌเจพเจจเจพเจ เจ เจคเฉ เจเจตเจพเจฌเจฆเฉเจน เจตเจพเจฒเจ เจฆเฉ เจเจ เจธเจฎเฉเจนเจพเจ เจฒเจ เจชเฉเจฐเฉ เจเจฎเจพเจเจก เจเฉเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเฉ:
ansible-playbook -i inventory ./playbook.yml -l "staging" --ask-vault-pass
เจชเจฐ เจฎเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจชเจฒเฉเจฌเฉเฉฑเจ เจ เจคเฉ เจฐเฉเจฒ เจฆเจพ เจชเฉเจฐเจพ เจเฉเจเจธเจ เจจเจนเฉเจ เจฆเฉเจตเจพเจเจเจพ, เจเจธเจจเฉเฉฐ เจเฉเจฆ เจฒเจฟเจเฉเฅค เจเจฟเจเจเจเจฟ เจเจตเจพเจฌเจฆเฉเจน เจเจธ เจคเจฐเฉเจนเจพเจ เจนเฉ - เจเฉ เจคเฉเจธเฉเจ เจเจน เจจเจนเฉเจ เจธเจฎเจเจฆเฉ เจเจฟ เจเฉ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ, เจคเจพเจ เจเจน เจคเฉเจนเจพเจกเฉ เจฒเจ เจเจน เจจเจนเฉเจ เจเจฐเฉเจเจพเฅค
เจธเจฐเฉเจค: www.habr.com