เดเดฐเต เดฑเตเดฏเดฟเตฝเดธเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดธเตเตผเดตเตผ เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดพเตป เดเดจเดฟเดเตเดเต เดเตเดฑเดเตเดเต เดฎเตเดฎเตเดชเต เด เตปเดธเดฟเดฌเดฟเตพ เดชเตเดฒเตเดฌเตเดเตเดเตเดเตพ เดเดดเตเดคเตเดฃเตเดเดฟ เดตเดจเตเดจเต. เดเตเดเดพเดคเต, เด เดคเดฟเดถเดฏเดเดฐเดฎเตเดจเตเดจเต เดชเดฑเดฏเดเตเดเต, เดเดพเตป เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดเตเดเด เดเดเตเดเดฎเดพเดฏเตเดณเตเดณ เดฎเดพเดจเตเดตเตฝ เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ. เดเดจเตเดคเดพเดฃเต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเดคเตเดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเดเตเดเดพเดคเต เดฎเดฑเตเดฑเตเดฐเดพเดณเตเดเต เดชเตเดฒเตเดฌเตเดเตเดเต เดชเดเตผเดคเตเดคเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเดฟเดฒเตเดฒ, เด เดตเดธเดพเดจเด เดเดจเดฟเดเตเดเต เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป เดตเดพเดฏเดฟเดเตเดเตเดฃเตเดเดฟเดตเดจเตเดจเต, เดเดฒเตเดฒเดพเด เดธเตเดตเดฏเด เดถเตเดเดฐเดฟเดเตเดเต. เดเดฐเตเดชเดเตเดทเต เด เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดธเดนเดพเดฏเดคเตเดคเตเดเต เด เดชเตเดฐเดเตเดฐเดฟเดฏ เดตเตเดเดคเตเดคเดฟเดฒเดพเดเตเดเดพเตป เดเดจเดฟเดเตเดเต เดเดฐเตเดฏเตเดเตเดเดฟเดฒเตเด เดธเดนเดพเดฏเดฟเดเตเดเดพเดจเดพเดเตเด.
SSH เดตเดดเดฟ เดเดฐเต เดฑเดฟเดฎเตเดเตเดเต เดธเตเตผเดตเดฑเดฟเตฝ(เดเดณเดฟเตฝ) เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดเดฐเต เดฎเตเตปเดจเดฟเดถเตเดเดฏเดฟเดเตเด เดฒเดฟเดธเตเดฑเตเดฑเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป เด เตปเดธเดฟเดฌเดฟเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดเดฐเต เดเดจเตเดฑเตผเดซเตเดธเต เดจเตฝเดเตเดจเตเดจเต เดเดจเตเดจเดคเดพเดฃเต เดเดฆเตเดฏเด เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเตเดฃเตเดเดคเต. เดเดตเดฟเดเต เดฎเดพเดเดฟเดเต เดเดจเตเดจเตเดฎเดฟเดฒเตเดฒ, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดชเตเดฒเดเดฟเตป เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเดจเตเด เดกเตเดเตเดเตผ, เดฎเตเดฃเดฟเดฑเตเดฑเดฑเดฟเดเดเต, เดฎเดฑเตเดฑเต เดเตเดกเดฟเดเตพ เดเดจเตเดจเดฟเดต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดฏ เดตเดฟเดจเตเดฏเดพเดธเด เดจเตเดเดพเดจเตเด เดเดดเดฟเดฏเดฟเดฒเตเดฒ. เดเดฐเต เดชเตเดฒเตเดฌเตเดเตเดเต เดเดดเตเดคเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดเดจเตเดคเดพเดฃเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดจเตเดจเตเด เด เดคเต เดเดเตเดเดจเต เดเตเดฏเตเดฏเดฃเดฎเตเดจเตเดจเตเด เดจเดฟเดเตเดเตพ เด เดฑเดฟเดเตเดเดฟเดฐเดฟเดเตเดเดฃเด. เด เดคเตเดเตเดฃเตเดเดพเดฃเต GitHub-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฑเตเดกเดฟเดฎเตเดฏเตเดกเต เดชเตเดฒเตเดฌเตเดเตเดเตเดเตพ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ "เดชเดเตผเดคเตเดคเตเด, เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด, เดเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเด" เดเดจเตเดจเดคเตเดชเตเดฒเตเดณเตเดณ เดฒเตเดเดจเดเตเดเดณเดฟเตฝ เดเดพเตป เดคเตเดชเตเดคเดจเดฒเตเดฒ.
เดจเดฎเตเดเตเดเต เดเดจเตเดคเดพเดฃเต เดตเตเดฃเตเดเดคเต?
เดเดพเตป เดเดคเดฟเดจเดเด เดชเดฑเดเตเดเดคเตเดชเตเดฒเต, เดเดฐเต เดชเตเดฒเตเดฌเตเดเตเดเต เดเดดเตเดคเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดเตเดเตพ เดเดจเตเดคเดพเดฃเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดจเตเดจเตเด เด เดคเต เดเดเตเดเดจเต เดเตเดฏเตเดฏเดฃเดฎเตเดจเตเดจเตเด เดจเดฟเดเตเดเตพ เด เดฑเดฟเดเตเดเดฟเดฐเดฟเดเตเดเดฃเด. เดเดจเตเดคเดพเดฃเต เดตเตเดฃเตเดเดคเตเดจเตเดจเต เดจเดฎเตเดเตเดเต เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเดพเด. เดเดฐเต เดฑเตเดฏเดฟเตฝเดธเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดพเดฏเดฟ เดจเดฎเตเดเตเดเต เดจเดฟเดฐเดตเดงเดฟ เดธเดฟเดธเตเดฑเตเดฑเด เดชเดพเดเตเดเตเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต: nginx, postgresql (redis, เดฎเตเดคเดฒเดพเดฏเดต). เดเตเดเดพเดคเต, เดจเดฎเตเดเตเดเต เดฑเตเดฌเดฟเดฏเตเดเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดชเดคเดฟเดชเตเดชเต เดเดตเดถเตเดฏเดฎเดพเดฃเต. Rbenv (rvm, asdf...) เดตเดดเดฟ เดเดคเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต. เดเดฐเต เดฑเตเดเตเดเต เดเดชเดฏเตเดเตเดคเดพเดตเดพเดฏเดฟ เดเดคเตเดฒเตเดฒเดพเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเต เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดเดฐเต เดฎเตเดถเด เดเดถเดฏเดฎเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ เดจเดฟเดเตเดเตพ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดธเตเดทเตเดเดฟเดเตเดเต เด เดตเดจเตเดฑเต เด เดตเดเดพเดถเดเตเดเตพ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดคเดฟเดจเตเดถเตเดทเด, เดจเดฟเดเตเดเตพ เดเดเตเดเดณเตเดเต เดเตเดกเต เดธเตเตผเดตเดฑเดฟเดฒเตเดเตเดเต เด เดชเตโเดฒเตเดกเต เดเตเดฏเตเดฏเดฃเด, nginx, postgres เดฎเตเดคเดฒเดพเดฏเดตเดฏเตเดเตเดเตเดณเตเดณ เดเตเตบเดซเดฟเดเดฑเตเดเตพ เดชเดเตผเดคเตเดคเดฟ เด เดธเตเดตเดจเดเตเดเดณเตเดฒเตเดฒเดพเด เดเดฐเดเดญเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต.
เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดเตเดฐเดฎเด เดเดชเตเดฐเดเดพเดฐเดฎเดพเดฃเต:
- เดฑเตเดเตเดเดพเดฏเดฟ เดฒเตเดเดฟเตป เดเตเดฏเตเดฏเตเด
- เดธเดฟเดธเตเดฑเตเดฑเด เดชเดพเดเตเดเตเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด
- เดเดฐเต เดชเตเดคเดฟเดฏ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดธเตเดทเตเดเดฟเดเตเดเตเด, เด เดตเดเดพเดถเดเตเดเตพ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเด, ssh เดเต
- เดธเดฟเดธเตเดฑเตเดฑเด เดชเดพเดเตเดเตเดเตเดเตพ (nginx เดฎเตเดคเดฒเดพเดฏเดต) เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเต เด เดต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด
- เดเดเตเดเตพ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต (เดจเดฟเดเตเดเตพเดเตเดเต เดเดเดจเดเดฟ เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด)
- เดเดฐเต เดชเตเดคเดฟเดฏ เดเดชเดฏเตเดเตเดคเดพเดตเดพเดฏเดฟ เดฒเตเดเดฟเตป เดเตเดฏเตเดฏเตเด
- rbenv, ruby โโเดเดจเตเดจเดฟเดต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด
- เดฌเดฃเตเดเตผ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเต
- เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตเดกเต เด เดชเตโเดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเต
- เดชเตเดฏเตเดฎ เดธเตเตผเดตเตผ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต
เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด เดตเดธเดพเดจ เดเดเตเดเดเตเดเตพ capistrano เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเดฏเตเดฏเดพเด, เดเตเดฑเดเตเดเดคเต เดฌเตเดเตโเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต เดเตเดกเต เดฑเดฟเดฒเตเดธเต เดกเดฏเดฑเดเตโเดเดฑเดฟเดเดณเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเดพเดจเตเด เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเต เดถเตเดทเด เดเดฐเต เดธเดฟเดเดฒเดฟเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดฑเดฟเดฒเตเดธเต เดฎเดพเดฑเตเดฑเดพเดจเตเด เดชเดเตเดเดฟเดเตเด เดกเดฏเดฑเดเตโเดเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเตเตบเดซเดฟเดเดฑเตเดเตพ เดชเดเตผเดคเตเดคเดพเดจเตเด เดชเตเดฏเตเดฎ เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดเดคเตเดฒเตเดฒเดพเด เด เตปเดธเดฟเดฌเดฟเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเดฏเตเดฏเดพเด, เดชเดเตเดทเต เดเดจเตเดคเตเดเตเดฃเตเดเต?
เดซเดฏเตฝ เดเดเดจ
เด
เตปเดธเดฟเดฌเดฟเดณเดฟเดจเต เดเตผเดถเดจเดฎเตเดฃเตเดเต
เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฒเตเดฌเตเดเตเดเต
เดชเตเดฐเดคเตเดฏเตเด เดตเดพเดเตเดฏเดเดเดจ เดเดชเดฏเตเดเดฟเดเตเดเต เด เตปเดธเดฟเดฌเดฟเตพ เดเดจเตเดคเตเดเตเดฏเตเดฏเดฃเดฎเตเดจเตเดจเตเด เดเดเตเดเดจเต เดเตเดฏเตเดฏเดฃเดฎเตเดจเตเดจเตเด เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต yml เดซเดฏเดฒเดพเดฃเต Playbook. เดเดจเตเดจเตเด เดเตเดฏเตเดฏเดพเดคเตเดค เดเดฆเตเดฏเดคเตเดคเต เดชเตเดฒเตเดฌเตเดเตเดเต เดจเดฎเตเดเตเดเต เดธเตเดทเตเดเดฟเดเตเดเดพเด:
---
- 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 เดเดเตโเดธเดธเต เดเดฃเตเดเตเดเตเดเดฟเตฝ, เด เตปเดธเดฟเดฌเดฟเตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเต เดฑเดฟเดฎเตเดเตเดเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดตเดฟเดตเดฐเดเตเดเตพ เดถเตเดเดฐเดฟเดเตเดเตเด. (เดกเดฟเดซเตเตพเดเตเดเต เดเดพเดธเตโเดเต [เดถเตเดเดฐเดฟเดเตเดเตฝ เดตเดธเตเดคเตเดคเดเตพ]) เด เดคเดฟเดจเตเดถเตเดทเด เด เดคเต เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดเดฐเต เดเตเดฑเดฟเดฏ เดฑเดฟเดชเตเดชเตเตผเดเตเดเต เดจเตฝเดเตเด (เดชเตเดฒเต เดฑเตเดเดพเดชเตเดชเต).
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, เดจเดฟเดเตเดเตพ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดฒเตเดเดฟเตป เดเตเดฏเตโเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด เดเดฃเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดเดคเต เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดนเตเดธเตเดฑเตเดฑเดฟเตฝ เดเดฏเดฟเดฐเดฟเดเตเดเดฟเดฒเตเดฒ. เดชเตเดฒเตเดฌเตเดเตเดเต เดซเดฏเดฒเดฟเตฝ, remote_user เดกเดฏเดฑเดเตโเดเตเดตเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเดพเตป เดเดคเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดเดชเดฏเตเดเดฟเดเตเดเดฃเดฎเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเด. เดเตเดเดพเดคเต, เดเดฐเต เดฑเดฟเดฎเตเดเตเดเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดตเดฟเดตเดฐเดเตเดเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดชเดฒเดชเตเดชเตเดดเตเด เด เดจเดพเดตเดถเตเดฏเดฎเดพเดฏเตเดเตเดเดพเด, เด เดคเต เดถเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดเตเดเตพ เดธเดฎเดฏเด เดชเดพเดดเดพเดเตเดเดฐเตเดคเต. เด เดเดพเดธเตโเดเต เด เดชเตเดฐเดพเดชเตโเดคเดฎเดพเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด:
---
- name: Simple playbook
hosts: all
remote_user: root
become: true
gather_facts: no
เดชเตเดฒเตเดฌเตเดเตเดเต เดตเตเดฃเตเดเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเด, เดเดฃเดเตเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเตเด. (เดจเดฟเดเตเดเตพ เดฑเตเดเตเดเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฏเดพเดฃเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏเดคเตเดเตเดเดฟเตฝ, เดเดฏเตผเดจเตเดจ เด
เดตเดเดพเดถเดเตเดเตพ เดจเตเดเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดเตเดเตพ เดเดเตเด: true เดจเดฟเตผเดฆเตเดฆเตเดถเดตเตเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเดจเดฟเตฝ เดเดดเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเตเดชเตเดฒเต: become set to โtrueโ/โyesโ to activate privilege escalation.
เดเดจเตเดคเตเดเตเดฃเตเดเตเดจเตเดจเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดตเตเดฏเดเตเดคเดฎเดฒเตเดฒเตเดเตเดเดฟเดฒเตเด).
เด เตปเดธเดฟเดฌเดฟเดณเดฟเดจเต เดชเตเดคเตเดคเตบ เดเดจเตเดฑเตผเดชเตเดฐเตเดฑเตเดฑเดฑเดฟเดจเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดพเดคเตเดคเดคเดฟเดจเดพเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดชเดฟเดถเดเต เดฒเดญเดฟเดเตเดเตเดเตเดเดพเด, เดคเตเดเตผเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เด เดคเต เดธเตเดตเดฎเตเดงเดฏเดพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเด:
ansible_python_interpreter: /usr/bin/python3
เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดคเตเดคเตบ เดเดตเดฟเดเตเดฏเดพเดฃเตเดจเตเดจเต เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเด whereis python
.
เดธเดฟเดธเตเดฑเตเดฑเด เดชเดพเดเตเดเตเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเต
เด
เตปเดธเดฟเดฌเดฟเดณเดฟเดจเตเดฑเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดกเดฟเดธเตเดเตเดฐเดฟเดฌเตเดฏเตเดทเดจเดฟเตฝ เดตเดฟเดตเดฟเดง เดธเดฟเดธเตเดฑเตเดฑเด เดชเดพเดเตเดเตเดเตเดเตพเดเตเดเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเดฐเดตเดงเดฟ เดฎเตเดกเตเดฏเตเดณเตเดเตพ เดเตพเดชเตเดชเตเดเตเดจเตเดจเต, เด
เดคเดฟเดจเดพเตฝ เดเดฐเต เดเดพเดฐเดฃเดตเดถเดพเดฒเตเด เดเดเตเดเตพ เดฌเดพเดทเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ เดเดดเตเดคเตเดฃเตเดเดคเดฟเดฒเตเดฒ. เดธเดฟเดธเตเดฑเตเดฑเด เด
เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดธเดฟเดธเตเดฑเตเดฑเด เดชเดพเดเตเดเตเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดเดชเตเดชเตเตพ เด เดฎเตเดกเตเดฏเตเดณเตเดเดณเดฟเตฝ เดเดจเตเดจเต เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดเดจเตเดฑเต เดตเดฟเดชเดฟเดเดธเดฟเตฝ เดเดฌเตเดฃเตเดเต เดฒเดฟเดจเดเตเดธเต เดเดฃเตเดเต, เด
เดคเดฟเดจเดพเตฝ เดชเดพเดเตเดเตเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเตป เดเดพเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต 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 เดชเดพเดเตเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฃเตเดจเตเดจเต เดฆเดฏเดตเดพเดฏเดฟ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด. เดตเตเดฃเตเดเตเด, เดจเดฟเดเตเดเตพ เดเดคเต เด
เดฑเดฟเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเดฃเด; เด
เตปเดธเดฟเดฌเดฟเตพ เดธเตเดตเดจเตเดคเดฎเดพเดฏเดฟ เดเดคเต เดเตเดฏเตเดฏเดฟเดฒเตเดฒ.
เดชเตเดฒเตเดฌเตเดเตเดเต เดตเตเดฃเตเดเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเด, เดชเดพเดเตเดเตเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดเตเดเตเดฃเตเดเตเดฏเตเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด.
เดชเตเดคเดฟเดฏ เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต.
เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป, เด เตปเดธเดฟเดฌเดฟเดณเดฟเดจเต เดเดฐเต เดฎเตเดกเตเดฏเตเดณเตเด เดเดฃเตเดเต - เดเดชเดฏเตเดเตเดคเดพเดตเต. เดจเดฎเตเดเตเดเต เดเดฐเต เดเดพเดธเตโเดเต เดเตเดเดฟ เดเตเตผเดเตเดเดพเด (เดเดฒเตเดฒเดพ เดคเดตเดฃเดฏเตเด เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดชเดเตผเดคเตเดคเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป เดเดพเตป เดชเตเดฒเตเดฌเตเดเตเดเดฟเดจเตเดฑเต เดเดคเดฟเดจเดเด เด เดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจ เดญเดพเดเดเตเดเตพ เดเดฎเดจเตเดฑเตเดเตพเดเตเดเต เดชเดฟเดจเตเดจเดฟเตฝ เดฎเดฑเดเตเดเต):
---
- 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]
- เดเตเดเตเดธเตเดฑเตเดฑเดฟเดจเตเดฑเต เด
เดเตเดคเตเดค เดฌเตเดฒเตเดเตเดเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ (vars) เดเดฃเตเดจเตเดจเตเด เด
เดต เดเดฒเตเดฒเดพ เดนเตเดธเตเดฑเตเดฑเตเดเตพเดเตเดเตเด (เดเดฒเตเดฒเดพเด) เดฌเดพเดงเดเดฎเดพเดฃเตเดจเตเดจเตเด เดชเดฑเดฏเตเดจเตเดจเต.
เดกเดฟเดธเตเดจเตเด เดฐเดธเดเดฐเดฎเดพเดฃเต "{{ user_password | password_hash('sha512') }}"
. เด
เตปเดธเดฟเดฌเดฟเตพ เดตเดดเดฟ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ เดเดจเตเดจเดคเดพเดฃเต เดเดพเดฐเตเดฏเด user_add
เดจเดฟเดเตเดเตพ เด
เดคเต เดธเตเดตเดฎเตเดงเดฏเดพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเดชเตเดฒเต. เดเตเดเดพเดคเต เดเดคเต เดเดฒเตเดฒเดพ เดกเดพเดฑเตเดฑเดฏเตเด เดจเตเดฐเดฟเดเตเดเต เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเต, เด
เดคเดฟเดจเดพเดฒเดพเดฃเต เดจเดฎเตเดฎเตพ เดชเดพเดธเตโเดตเตเดกเต เดฎเตเตปเดเตเดเตเดเดฟ เดเดฐเต เดนเดพเดทเดฟเดฒเตเดเตเดเต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเต, เด
เดคเดพเดฃเต เด เดเดฎเดพเตปเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต.
เดธเตเดกเต เดเตเดฐเตเดชเตเดชเดฟเดฒเตเดเตเดเต เดจเดฎเตเดฎเตเดเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดเตเตผเดเตเดเดพเด. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เด เดคเตเดคเดฐเดฎเตเดฐเต เดเตเดฐเตเดชเตเดชเต เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต, เดเดพเดฐเดฃเด เดเดฐเตเด เดเดเตเดเตพเดเตเดเดพเดฏเดฟ เดเดคเต เดเตเดฏเตเดฏเดฟเดฒเตเดฒ:
---
- 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"
เดเดฒเตเดฒเดพเด เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฃเต, เดเตเดฐเตเดชเตเดชเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดเตเดฐเตเดชเตเดชเต เดฎเตเดกเตเดฏเตเดณเตเด เดเดเตเดเตพเดเตเดเตเดฃเตเดเต, เดเดชเตโเดฑเตเดฑเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏ เดตเดพเดเตเดฏเดเดเดจเดฏเตเด. เด
เดชเตเดชเตเตพ เด เดเตเดฐเตเดชเตเดชเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดคเดพเตฝ เดฎเดคเดฟ (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/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 in เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดพเด 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 เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต (เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเตเดฐเดฟเดเตเดเต เดเดเตเดเตเดเดพเด, เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดธเตเดตเดฏเด เดเดดเตเดคเดพเด). เดเตเดเดพเดคเต sites_available เดกเดฏเดฑเดเตโเดเดฑเดฟเดฏเดฟเดฒเต เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดพเดฏเตเดณเตเดณ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเตเด (เดเดคเต เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฃเต). เดเดฆเตเดฏ เดธเดจเตเดฆเตผเดญเดคเตเดคเดฟเตฝ, เดซเดฏเดฒเตเดเตพ เดชเดเตผเดคเตเดคเดพเตป เดเดเตเดเตพ เดเตเดชเตเดชเดฟ เดฎเตเดกเตเดฏเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต (เดซเดฏเตฝ เด
เดเดคเตเดคเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด /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 }}
- เดเดตเดฏเตเดฒเตเดฒเดพเด เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเดพเดฃเต, เด
เดคเดฟเดจเตเดฑเต เดฎเตเดฒเตเดฏเดเตเดเตพ เดชเดเตผเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด
เตปเดธเดฟเดฌเดฟเตพ เดเตเดเดชเตเดฒเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดชเดเดฐเตเด. เดนเตเดธเตเดฑเตเดฑเตเดเดณเตเดเต เดตเดฟเดตเดฟเดง เดเตเดฐเตเดชเตเดชเตเดเตพเดเตเดเดพเดฏเดฟ เดจเดฟเดเตเดเตพ เดเดฐเต เดชเตเดฒเตเดฌเตเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ เดเดคเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฃเต. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฎเตเดเตเดเต เดจเดฎเตเดฎเตเดเต เดเตปเดตเตเดจเตเดฑเดฑเดฟ เดซเดฏเตฝ เดเตเตผเดเตเดเดพเด:
[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
เดเดเตเดเตพ เดเดชเตเดชเตเตพ เดเดเตเดเดณเตเดเต เดชเตเดฒเตเดฌเตเดเตเดเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เด
เดคเต เดฐเดฃเตเดเต เดนเตเดธเตเดฑเตเดฑเตเดเตพเดเตเดเตเด เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโเด เดเดพเดธเตโเดเตเดเตเดเตพ เดจเดฟเตผเดตเดนเดฟเดเตเดเตเด. เดเดจเตเดจเดพเตฝ เด
เดคเต เดธเดฎเดฏเด, เดเดฐเต เดธเตเดฑเตเดฑเตเดเดฟเดเดเต เดนเตเดธเตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ, เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดชเตเดฐเตเดกเดเตเดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เดเตเดเดพเดคเต เดฑเตเดณเตเดเดณเดฟเดฒเตเด เดชเตเดฒเตเดฌเตเดเตเดเตเดเดณเดฟเดฒเตเด เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, nginx เดเตเตบเดซเดฟเดเดฑเตเดเดณเดฟเดฒเตเด. {{ 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 เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เด เตผเดคเตเดฅเดฎเดฟเดฒเตเดฒ. โเดเดคเต เดเดคเตเดชเตเดฒเต เดเตเดฏเตเดฏเตเดโ เดเดจเตเดจเดคเตเดชเตเดฒเตเดณเตเดณ เดเดฎเดพเตปเดกเตเดเตพ เดเดเตเดเตพ เดเดดเตเดคเตเดจเตเดจเดฟเดฒเตเดฒเตเดจเตเดจเต เดจเดฟเดเตเดเตพ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเต, เดตเดพเดเตเดฏเดเดเดจ โเดเดคเดฟเดจเต เด เด เดตเดธเตเดฅ เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเดโ เดเดจเตเดจเต เดคเตเดจเตเดจเตเดจเตเดจเต. เดฎเดฟเดเตเดเดชเตเดชเตเดดเตเด เดเดเตเดเดจเตเดฏเดพเดฃเต เด เตปเดธเดฟเดฌเดฟเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเต. เดเตเดฐเตเดชเตเดชเต เดเดคเดฟเดจเดเด เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดธเดฟเดธเตเดฑเตเดฑเด เดชเดพเดเตเดเตเดเต เดเดคเดฟเดจเดเด เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เตปเดธเดฟเดฌเดฟเตพ เดเดคเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเต เดเดพเดธเตเดเต เดเดดเดฟเดตเดพเดเตเดเตเด. เดเตเดเดพเดคเต, เดธเตเตผเดตเดฑเดฟเตฝ เดเดคเดฟเดจเดเด เดเดณเตเดณเดตเดฏเตเดฎเดพเดฏเดฟ เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเตเดเตเดเดฟเตฝ เดซเดฏเดฒเตเดเตพ เดชเดเตผเดคเตเดคเดชเตเดชเตเดเดฟเดฒเตเดฒ. เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเตเดเตพ เดฎเดพเดฑเตเดฑเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต เดจเดฎเตเดเตเดเต เดเดคเต เดชเตเดฐเดฏเตเดเดจเดชเตเดชเตเดเตเดคเตเดคเดพเดจเตเด 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 เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต
เดจเดฎเตเดฎเตพ nginx-เตฝ เดเตเดฏเตเดค เด
เดคเต เดฐเตเดคเดฟเดฏเดฟเตฝ systemd เดเดชเดฏเตเดเดฟเดเตเดเต postgresql เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต, เดเตเดเดพเดคเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเด เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเด เดเดเตเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดตเตเดฃเด.
เดจเดฎเตเดเตเดเต เดเดฐเต เดฑเตเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเด /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
. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, postgres เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเต postgresql เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตเดถเดจเดฎเตเดณเตเดณเต, เดชเตเดฐเดพเดฆเตเดถเดฟเดเดฎเดพเดฏเดฟ เดฎเดพเดคเตเดฐเด. เด เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดตเตเดฃเตเดเดฟ เดเดฎเดพเตปเดกเตเดเตพ เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเดพเตป เด เดจเดฟเตผเดฆเตเดฆเตเดถเด เดเดเตเดเดณเต เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต (เดเดเตเดเตพเดเตเดเต เดเดเตเดธเดธเต เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดคเตเตผเดเตเดเดฏเดพเดฏเตเด).
เดเตเดเดพเดคเต, เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต เดเดฐเต เดชเตเดคเดฟเดฏ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดชเตเดฐเดตเตเดถเดจเด เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต pg_hba.conf เดเดจเตเดจเดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดตเดฐเดฟ เดเตเตผเดเตเดเตเดฃเตเดเดฟ เดตเดจเตเดจเตเดเตเดเดพเด. เดเดเตเดเตพ nginx เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดฎเดพเดฑเตเดฑเดฟเดฏ เด
เดคเต เดฐเตเดคเดฟเดฏเดฟเตฝ เดเดคเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด.
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดจเดฟเดเตเดเตพ เดชเตเดฐเดงเดพเดจ เดชเตเดฒเตเดฌเตเดเตเดเดฟเดฒเตเดเตเดเต postgresql เดฑเตเตพ เดเตเตผเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต.
Rbenv เดตเดดเดฟ เดฑเตเดฌเดฟ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเต
เด
เตปเดธเดฟเดฌเดฟเดณเดฟเดจเต 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 เด เดคเดฟเดจเตเดฑเต เดนเตเด เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเตฝ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดเดเตเดณเดคเดฒเดคเตเดคเดฟเตฝ เด เดฒเตเดฒ. เดฑเดฟเดชเตเดชเต, เดกเตเดธเตโเดฑเตเดฑเต เดเดจเตเดจเดฟเดต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจ เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ เดเตเดฒเตเตบ เดเตเดฏเตเดฏเดพเดจเตเด เดเดเตเดเตพ เดเดฟเดฑเตเดฑเต เดฎเตเดกเตเดฏเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
เด เดเตเดคเตเดคเดคเดพเดฏเดฟ, 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 เดตเดดเดฟเดฏเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต, เด เดคเดพเดฏเดคเต, เดฌเดพเดทเต เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต:
- name: Install ruby
become_user: "{{ user }}"
shell: |
export PATH="${HOME}/.rbenv/bin:${PATH}"
eval "$(rbenv init -)"
rbenv install {{ ruby_version }}
args:
executable: /bin/bash
เดเดคเต เดเดฎเดพเตปเดกเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเดฃเดฎเตเดจเตเดจเตเด เดเดจเตเดคเตเดชเดฏเตเดเดฟเดเตเดเต เดจเดเดคเตเดคเดฃเดฎเตเดจเตเดจเตเด เดเดเตเดเตพ เดชเดฑเดฏเตเดจเตเดจเต. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดฎเดพเตปเดกเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต bashrc-เตฝ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดกเต ansible เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ เดเดจเตเดจ เดตเดธเตเดคเตเดค เดเดตเดฟเดเต เดเดพเดฃเดพเด. เดเดคเดฟเดจเตผเดคเตเดฅเด 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 เดเตเตผเดเตเดเตเด.
เดชเดเตเดเดฟเดเตเด เดซเดฏเดฒเตเดเตพ.
เดชเตเดคเตเดตเต, เดธเดเตเดเตเดเดฐเดฃเด เดเดตเดฟเดเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเดพเด. เด
เดเตเดคเตเดคเดคเดพเดฏเดฟ, เดเดพเดชเตเดชเดฟเดธเตเดเตเดฐเดพเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด
เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต, เด
เดคเต เดเตเดกเต เดคเดจเตเดจเต เดชเดเตผเดคเตเดคเตเดเดฏเตเด เดเดตเดถเตเดฏเดฎเดพเดฏ เดกเดฏเดฑเดเตเดเดฑเดฟเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด (เดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฏเดฟ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ). เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเตเดฏเดพเดชเดฟเดธเตเดเตเดฐเดพเดจเตเดฏเตเดเตเดเต เดชเดฒเดชเตเดชเตเดดเตเด เด
เดงเดฟเด เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต 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-playbook -i inventory ./playbook.yml -l "staging" --ask-vault-pass
เดเดจเตเดจเดพเตฝ เดชเตเดฒเตเดฌเตเดเตเดเตเดเดณเตเดเตเดฏเตเด เดฑเตเดณเตเดเดณเตเดเตเดฏเตเด เดฎเตเดดเตเดตเตป เดตเดพเดเดเดตเตเด เดเดพเตป เดจเดฟเดเตเดเตพเดเตเดเต เดจเตฝเดเดฟเดฒเตเดฒ, เด เดคเต เดธเตเดตเดฏเด เดเดดเตเดคเตเด. เดเดพเดฐเดฃเด เด เตปเดธเดฟเดฌเดฟเตพ เด เดเตเดเดจเตเดฏเดพเดฃเต - เดเดจเตเดคเดพเดฃเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดคเต เดจเดฟเดเตเดเตพเดเตเดเดพเดฏเดฟ เดเตเดฏเตเดฏเดฟเดฒเตเดฒ.
เด เดตเดฒเดเดฌเด: www.habr.com