เดนเดฒเตเดพ เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด!
เดเดพเตป เดเดฐเต เดนเตเดเตเดเตฝ เดฌเตเดเตเดเดฟเดเดเต เดธเตเดตเดจเดคเตเดคเดฟเตฝ DevOps เดเดเตเดเดฟเดจเตเดฏเดฑเดพเดฏเดฟ เดเตเดฒเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเต.
Ostrovok.ru-เตฝ, เดเดเตเดเตพ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดฎเดพเดจเตเดเดฐเดพเดฏเดฟ เด เตปเดธเดฟเดฌเดฟเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เด เดเตเดคเตเดคเดฟเดเต, เดฑเตเดณเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดฟเดจเตเดฑเต เดเดตเดถเตเดฏเดเดคเดฏเดฟเดฒเตเดเตเดเต เดเดเตเดเตพ เดเดคเตเดคเดฟ, เดชเดเตเดทเต, เดเดคเดฟเดจเต เดตเดณเดฐเตเดฏเดงเดฟเดเด เดเดชเดเดฐเดฃเดเตเดเตพ เดเดฒเตเดฒ - เดเดฑเตเดฑเดตเตเด เดเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏเดคเต, เดเดฐเตเดชเดเตเดทเต, เดฎเตเดณเดฟเดเตเดฏเตเตพ เดเดเตเดเดเตเดเตเดเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ เดเดเตเดเตพ เด เดคเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต. เดเดจเตเดจเดพเตฝ เด เดฆเตเดฆเตเดนเดคเตเดคเดฟเดจเตเดฑเต เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป เดชเดฒ เด เดชเดเดเดเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเตเด เดจเดฟเดถเดฌเตเดฆเดฎเดพเดฃเตเดจเตเดจเต เดคเตเดณเดฟเดเตเดเต. เดฑเดทเตเดฏเตป เดญเดพเดทเดฏเดฟเตฝ เดฎเดคเดฟเดฏเดพเดฏ เดตเดฟเดถเดฆเดฎเดพเดฏ เดฎเดพเดจเตเดตเตฝ เดเดเตเดเตพเดเตเดเต เดเดฃเตเดเตเดคเตเดคเดพเตป เดเดดเดฟเดเตเดเดฟเดฒเตเดฒ, เด เดคเดฟเดจเดพเตฝ เด เดฒเตเดเดจเด เดเดดเตเดคเดพเตป เดเดเตเดเตพ เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต.
เดคเดจเตเดฎเดพเดคเตเดฐ
เดฒเดณเดฟเดคเดฎเดพเดฏ เดตเดฟเดตเดฐเดฃเด: เดจเดฟเดเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจ เดชเตเดฒเดพเดฑเตเดฑเตโเดซเตเดฎเดฟเตฝ เดคเดจเตเดฎเดพเดคเตเดฐ เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต (เดเตเดฒเตเดกเต, เดตเตเตผเดเตเดตเตฝ เดฎเตเดทเตเตป, เดเดฃเตเดเตเดฏเตโเดจเตผ; เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพเดเตเดเต, เดตเดฟเดญเดพเดเด เดเดพเดฃเตเด
เดเดชเตเดชเตเตพ เดเตเดเตเดคเตฝ.
เดเดฐเต เดธเดฟเดฆเตเดงเดพเดจเตเดคเด
เดคเดจเตเดฎเดพเดคเตเดฐเดฏเตเดเต เดฐเดฃเตเดเต เดชเตเดฐเดงเดพเดจ เดเดจเตเดฑเดฟเดฑเตเดฑเดฟเดเตพ เดชเดฐเดฟเดเดฃเดฟเดเตเดเตเด: เดธเดฟเดจเดพเดฐเดฟเดฏเตเดฏเตเด เดกเตเดฐเตเดตเดฑเตเด.
เดธเดพเดนเดเดฐเตเดฏเด
เดเดจเตเดคเต, เดเดตเดฟเดเต, เดเดเตเดเดจเต, เดเดคเต เดเตเดฐเดฎเดคเตเดคเดฟเตฝ เดจเดฟเตผเดตเดนเดฟเดเตเดเตเด เดเดจเตเดจเดคเดฟเดจเตเดฑเต เดตเดฟเดตเดฐเดฃเด เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต เดฑเตเดณเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด, เดเดฐเตเดจเตเดจเตเด เดชเดพเดคเดฏเดฟเดฒเต เดเดฐเต เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดพเดฃเต <role>/molecule/<scenario>
, เดเตเดธเตเดฑเตเดฑเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดตเดฟเดตเดฐเดฃเดเตเดเตพ เดเดคเดฟเตฝ เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฃเด default
, เดจเดฟเดเตเดเตพ เดเดฐเต เดฎเตเดณเดฟเดเตเดฏเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดฑเตเตพ เดเดฐเดเดญเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ เด
เดคเต เดธเตเดตเดฏเดฎเตเดต เดธเตเดทเตเดเดฟเดเตเดเดชเตเดชเตเดเตเด. เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเดณเตเดเต เดชเตเดฐเตเดเตพ เดจเดฟเดเตเดเดณเตเดเตเดคเดพเดฃเต.
เดเดฐเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดชเดฐเตเดเตเดทเดฃ เดเตเดฐเดฎเดคเตเดคเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต เดฎเดพเดเตเดฐเดฟเดเตเดธเต, เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดเดคเต:
(เดฒเตเดฌเตฝ เดเตเดฏเตเดค เดเดเตเดเดเตเดเตพ ?
, เดเดชเดฏเตเดเตเดคเดพเดตเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดเดดเดฟเดตเดพเดเตเดเตเด)
lint
- เดเดเตเดจเตเดจ เดฒเดฟเดจเตเดฑเดฑเตเดเตพ. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเตyamllint
ะธflake8
,destroy
- เดคเดจเตเดฎเดพเดคเตเดฐเดฏเตเดเต เด เดตเดธเดพเดจ เดตเดฟเดเตเดทเตเดชเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดเดญเดตเดเตเดเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเต (เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดเดฃเตเดเตเดเตเดเดฟเตฝ),dependency
? - เดชเดฐเดฟเดถเตเดงเดฟเดเตเด เดฑเตเดณเดฟเดจเตเดฑเต เดเดถเตเดฐเดฟเดคเดคเตเดตเดคเตเดคเดฟเดจเตเดฑเต เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเตป,syntax
- เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดฑเตเดณเดฟเดจเตเดฑเต เดตเดพเดเตเดฏเดเดเดจ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเตansible-playbook --syntax-check
,create
- เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต,prepare
? - เดเดฆเดพเดนเดฐเดฃเด เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเตฝ; เดเดฆเดพ. เดชเตเดคเตเดคเตบ2 เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด/เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดconverge
- เดชเตเดฒเตเดฌเตเดเตเดเดฟเดจเตเดฑเต เดฒเตเดเตเดเต เดชเดฐเตเดเตเดทเดฟเดเตเดเตเดเตเดฃเตเดเดฟเดฐเดฟเดเตเดเตเดเดฏเดพเดฃเต,idempotence
- เดเดกเดฎเตเดชเดฑเตเดฑเตปเดธเดฟ เดเตเดธเตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ เดชเตเดฒเตเดฌเตเดเตเดเต เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต,side_effect
? - เดฑเตเดณเตเดฎเดพเดฏเดฟ เดจเตเดฐเดฟเดเตเดเต เดฌเดจเตเดงเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ, เดชเดเตเดทเต เดชเดฐเดฟเดถเตเดงเดจเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฃเต,verify
- เดเดชเดฏเตเดเดฟเดเตเดเต เดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเดฑเต เดเตเดธเตเดฑเตเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดtestinfra
(เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ) /goss
/inspec
,cleanup
? - (เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเดเดณเดฟเตฝ) - เดเดเดฆเตเดถเด เดชเดฑเดเตเดเดพเตฝ, เดฎเตเดณเดฟเดเตเดฏเตเตพ เดฌเดพเดงเดฟเดเตเด เดฌเดพเดนเตเดฏ เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเตผ "เดตเตเดคเตเดคเดฟเดฏเดพเดเตเดเตฝ",destroy
- เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเต.
เด เดเตเดฐเดฎเด เดฎเดฟเดเตเด เดเตเดธเตเดเดณเตเด เดเตพเดเตเดเตเดณเตเดณเตเดจเตเดจเต, เดชเดเตเดทเต เดเดตเดถเตเดฏเดฎเตเดเตเดเดฟเตฝ เดฎเดพเดฑเตเดฑเดพเดตเตเดจเตเดจเดคเดพเดฃเต.
เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดเดฐเต เดเดเตเดเดเตเดเดณเตเด เดชเตเดฐเดคเตเดฏเตเดเด เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด molecule <command>
. เดเดจเตเดจเดพเตฝ เด
เดคเตเดคเดฐเด เดเดฐเต เดเตเดฒเต-เดเดฎเดพเตปเดกเดฟเดจเตเด เด
เดคเดฟเดจเตเดฑเตเดคเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดเตเดฐเดฎเด เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดพเดฎเตเดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดฃเด, เด
เดคเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเด molecule matrix <command>
. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฎเตเดชเตเตพ converge
(เดชเดฐเตเดเตเดทเดฃเดคเตเดคเดฟเดจเต เดเตเดดเดฟเตฝ เดชเตเดฒเตเดฌเตเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเต), เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเด:
$ molecule matrix converge
...
โโโ default # ะฝะฐะทะฒะฐะฝะธะต ััะตะฝะฐัะธั
โโโ dependency # ัััะฐะฝะพะฒะบะฐ ะทะฐะฒะธัะธะผะพััะตะน
โโโ create # ัะพะทะดะฐะฝะธะต ะธะฝััะฐะฝัะฐ
โโโ prepare # ะฟัะตะดะฝะฐัััะพะนะบะฐ ะธะฝััะฐะฝัะฐ
โโโ converge # ะฟัะพะณะพะฝ ะฟะปะตะนะฑัะบะฐ
เด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดเตเดฐเดฎเด เดเดกเดฟเดฑเตเดฑเตเดเตเดฏเตเดฏเดพเดจเดพเดเตเด. เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดเดคเดฟเดจเดเด เดเตเดฏเตเดคเตเดเดดเดฟเดเตเดเดพเตฝ, เด
เดคเต เดเดดเดฟเดตเดพเดเตเดเดชเตเดชเตเดเตเด. เดจเดฟเดฒเดตเดฟเดฒเต เด
เดตเดธเตเดฅเดฏเตเด เดธเดจเตเดฆเตผเดญเดเตเดเดณเตเดเต เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเด, เดคเดจเตเดฎเดพเดคเตเดฐ เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเตฝ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต $TMPDIR/molecule/<role>/<scenario>
.
เดเตเดเต เดเดเตเดเดเตเดเตพ เดเตเตผเดเตเดเตเด ?
เดจเดฟเดเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ ansible-playbook เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดพเด, เดเตเดเดพเดคเต เดเดเตเดเด เด
เดจเตเดธเดฐเดฟเดเตเดเต เดซเดฏเดฒเดฟเดจเตเดฑเต เดชเตเดฐเต เดเดฃเตเดเดพเดเตเดเตเด: prepare.yml
/side_effect.yml
. เด เดซเดฏเดฒเตเดเตพ เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเด เดคเดจเตเดฎเดพเดคเตเดฐ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดซเตเตพเดกเดฑเดฟเดฒเดพเดฏเดฟเดฐเดฟเดเตเดเตเด.
เดกเตเดฐเตเดตเตผ
เดเตเดธเตเดฑเตเดฑเต เดธเดจเตเดฆเตผเดญเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดจเตเดฑเดฟเดฑเตเดฑเดฟเดฏเดพเดฃเต เดกเตเดฐเตเดตเตผ.
เดฎเตเดณเดฟเดเตเดฏเตเดณเดฟเดจเต เดเตเดเดชเตเดฒเตเดฑเตเดฑเตเดเตพ เดคเดฏเตเดฏเดพเดฑเดพเดฏเดฟเดเตเดเตเดณเตเดณ เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดกเตเดฐเตเดตเดฑเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดชเตเดฐเดเดพเดฐเดฎเดพเดฃเต: Azure, Docker, EC2, GCE, LXC, LXD, OpenStack, Vagrant, Deligated.
เดฎเดฟเดเตเด เดเตเดธเตเดเดณเดฟเดฒเตเด, เดเตเดเดชเตเดฒเตเดฑเตเดฑเตเดเตพ เดซเดฏเดฒเตเดเดณเดพเดฃเต create.yml
ะธ destroy.yml
เดฏเดฅเดพเดเตเดฐเดฎเด เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเตเด เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดซเตเตพเดกเดฑเดฟเตฝ.
เดเดดเดฟเดตเดพเดเตเดเดฒเตเดเตพ เดกเตเดเตเดเดฑเตเด เดตเดพเดเตเดฐเดจเตเดฑเตเดฎเดพเดฃเต, เดเดพเดฐเดฃเด เด
เดตเดฏเตเดเต เดฎเตเดกเตเดฏเตเดณเตเดเดณเตเดฎเดพเดฏเตเดณเตเดณ เดเดเดชเตเดเดฒเตเดเตพ เดฎเตเตฝเดชเตเดชเดฑเดเตเด เดซเดฏเดฒเตเดเตพ เดเดฒเตเดฒเดพเดคเต เดคเดจเตเดจเต เดธเดเดญเดตเดฟเดเตเดเดพเด.
เดกเตเดฒเดฟเดเตเดฑเตเดฑเดกเต เดกเตเดฐเตเดตเตผ เดนเตเดฒเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดฎเตเดฒเตเดฏเดตเดคเตเดคเดพเดฃเต, เดเดพเดฐเดฃเด เดเดคเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดซเดฏเดฒเตเดเดณเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเตปเดธเตเดฑเตเดฑเตปเดธเตเดเดณเตเดเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดฎเดพเดคเตเดฐเดฎเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเต, เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณเดต เดเดเตเดเดฟเดจเตเดฏเตผ เดตเดฟเดตเดฐเดฟเดเตเดเดฃเด.
เดกเดฟเดซเตเตพเดเตเดเต เดกเตเดฐเตเดตเตผ เดกเตเดเตเดเตผ เดเดฃเต.
เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดชเดฐเดฟเดถเตเดฒเดจเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด, เด เดตเดฟเดเต เดเตเดเตเดคเตฝ เดธเดตเดฟเดถเตเดทเดคเดเตพ เดชเดฐเดฟเดเดฃเดฟเดเตเดเดพเด.
เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต
เดเดฐเต "เดนเดฒเต เดตเตเตพเดกเต" เดเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ, เดจเดฎเตเดเตเดเต เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ nginx เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเตป เดฑเตเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด. เดจเดฎเตเดเตเดเต เดกเตเดเตเดเดฑเดฟเดจเต เดกเตเดฐเตเดตเดฑเดพเดฏเดฟ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเดพเด - เดจเดฟเดเตเดเดณเดฟเตฝ เดฎเดฟเดเตเดเดตเดฐเตเด เดเดคเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดเตเดเตเดฃเตเดเตเดจเตเดจเต เดเดพเตป เดเดฐเตเดคเตเดจเตเดจเต (เดกเตเดเตเดเตผ เดกเดฟเดซเตเตพเดเตเดเต เดกเตเดฐเตเดตเดฑเดพเดฃเตเดจเตเดจเต เดเตผเดเตเดเตเด).
เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเตเด virtualenv
เด
เดคเดฟเตฝ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด molecule
:
> pip install virtualenv
> virtualenv -p `which python2` venv
> source venv/bin/activate
> pip install molecule docker # molecule ัััะฐะฝะพะฒะธั ansible ะบะฐะบ ะทะฐะฒะธัะธะผะพััั; docker ะดะปั ะดัะฐะนะฒะตัะฐ
เด
เดเตเดคเตเดค เดเดเตเดเด เดชเตเดคเดฟเดฏ เดฑเตเตพ เดเดฐเดเดญเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต.
เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดชเตเดคเดฟเดฏ เดฑเตเดณเดฟเดจเตเดฑเต เดคเตเดเดเตเดเดตเตเด เดเดฐเต เดชเตเดคเดฟเดฏ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต molecule init <params>
:
> molecule init role -r nginx
--> Initializing new role nginx...
Initialized role in <path>/nginx successfully.
> cd nginx
> tree -L 1
.
โโโ README.md
โโโ defaults
โโโ handlers
โโโ meta
โโโ molecule
โโโ tasks
โโโ vars
6 directories, 1 file
เดเดคเต เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เด เตปเดธเดฟเดฌเดฟเตพ เดฑเตเดณเดพเดฏเดฟ เดฎเดพเดฑเดฟ. เดเตเดเดพเดคเต, CLI เดคเดจเตเดฎเดพเดคเตเดฐเดเดณเตเดฎเดพเดฏเตเดณเตเดณ เดเดฒเตเดฒเดพ เดเดเดชเตเดเดฒเตเดเดณเตเด เดฑเตเดณเดฟเดจเตเดฑเต เดฎเตเดฒเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต.
เดฑเตเตพ เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเตฝ เดเดจเตเดคเดพเดฃเตเดจเตเดจเต เดจเตเดเตเดเดพเด:
> tree molecule/default/
molecule/default/
โโโ Dockerfile.j2 # Jinja-ัะฐะฑะปะพะฝ ะดะปั Dockerfile
โโโ INSTALL.rst. # ะะตะผะฝะพะณะพ ะธะฝัะพัะผะฐัะธะธ ะพะฑ ัััะฐะฝะพะฒะบะต ะทะฐะฒะธัะธะผะพััะตะน ััะตะฝะฐัะธั
โโโ molecule.yml # ะคะฐะนะป ะบะพะฝัะธะณััะฐัะธะธ
โโโ playbook.yml # ะะปะตะนะฑัะบ ะทะฐะฟััะบะฐ ัะพะปะธ
โโโ tests # ะะธัะตะบัะพัะธั ั ัะตััะฐะผะธ ััะฐะดะธะธ verify
โโโ test_default.py
1 directory, 6 files
เดจเดฎเตเดเตเดเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเดพเด molecule/default/molecule.yml
(เดกเตเดเตเดเตผ เดเดฟเดคเตเดฐเด เดฎเดพเดคเตเดฐเด เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเตเด):
---
dependency:
name: galaxy
driver:
name: docker
lint:
name: yamllint
platforms:
- name: instance
image: centos:7
provisioner:
name: ansible
lint:
name: ansible-lint
scenario:
name: default
verifier:
name: testinfra
lint:
name: flake8
เดเดถเตเดฐเดฟเดคเดคเตเดตเด
เด เดตเดฟเดญเดพเดเด เดกเดฟเดชเตปเดกเตปเดธเดฟเดเดณเตเดเต เดเดฑเดตเดฟเดเด เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเดชเตเดทเดจเตเดเตพ:
เดเดพเดฒเดเตเดธเดฟเดฏเตเด เดเดฟเตฝเดฑเตเดฑเตเด เดจเดฟเดเตเดเดณเตเดเต เดเดตเดถเตเดฏเดเตเดเตพ เดจเดฟเดฑเดตเตเดฑเตเดฑเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดฎเดพเตปเดกเต เดทเตเตฝ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดทเตเตฝ.
เดเดพเตป เดเดตเดฟเดเต เดตเดณเดฐเตเดเตเดเดพเดฒเด เดคเดพเดฎเดธเดฟเดเตเดเดฟเดฒเตเดฒ, เด
เดคเต เดตเดฟเดตเดฐเดฟเดเตเดเดพเตฝ เดฎเดคเดฟ
เดกเตเดฐเตเดตเตผ
เดกเตเดฐเตเดตเดฑเตเดเต เดชเตเดฐเต. เดเดเตเดเดณเตเดเตเดคเต เดกเตเดเตเดเดฑเดพเดฃเต.
เดฎเดคเตเดคเดเตเด
เดฒเดฟเดจเตเดฑเตผ เดฏเดพเดเดฒเดฟเดจเตเดฑเต เดเดฃเต.
yamllint, เดซเตเตผเดตเตเดกเต เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฒเดฟเดจเตเดฑเตผ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดเตเดเตฝ เดเดจเตเดจเดฟเดตเดฏเตโเดเตเดเดพเดฏเดฟ เดเดฐเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเตฝ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดดเดฟเดตเดพเดฃเต เดเตเตบเดซเดฟเดเดฑเดฟเตปเดฑเต เด เดญเดพเดเดคเตเดคเดฟเดฒเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฏ เดเดชเตเดทเดจเตเดเตพ:
lint:
name: yamllint
options:
config-file: foo/bar
env:
FOO: bar
enabled: False
เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเดฎเตเดเตพ
เดธเดเดญเดตเดเตเดเดณเตเดเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดกเตเดฐเตเดตเตผ เดเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ เดกเตเดเตเดเดฑเดฟเดจเตเดฑเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดคเดจเตเดฎเดพเดคเตเดฐ เด เดตเดฟเดญเดพเดเดคเตเดคเดฟเตฝ เดเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดฒเดฟเดธเตเดฑเตเดฑเดฟเดฒเต เดเดฐเต เดเดเดเดเตเดเดณเตเด เดเดคเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฃเต Dockerfile.j2
เดเดฐเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดพเดฏเดฟ item
.
เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดเดฐเต เดกเตเดฐเตเดตเดฑเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ create.yml
ะธ destroy.yml
, เดเดจเตเดจ เดตเดฟเดญเดพเดเด เด
เดตเดฏเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฃเต molecule_yml.platforms
, เดเตเดเดพเดคเต เด
เดคเดฟเดจเต เดฎเตเดฒเตเดณเตเดณ เดเดตเตผเดคเตเดคเดจเดเตเดเตพ เด เดซเดฏเดฒเตเดเดณเดฟเตฝ เดเดคเดฟเดจเดเด เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเต.
เดฎเตเดณเดฟเดเตเดฏเตเตพ เด
เตปเดธเดฟเดฌเดฟเตพ เดฎเตเดกเตเดฏเตเดณเตเดเตพเดเตเดเต เดเตปเดธเตเดฑเตเดฑเตปเดธเตเดเดณเตเดเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด เดจเตฝเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเดณเตเดเต เดชเดเตเดเดฟเดเดฏเตเด เด
เดตเดฟเดเต เดคเดฟเดฐเดฏเตเดฃเตเดเดคเดพเดฃเต. เดกเตเดเตเดเดฑเดฟเดจเดพเดฏเดฟ, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฎเตเดกเตเดฏเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต
เดตเดฟเดตเดฟเดง เดกเตเดฐเตเดตเดฑเตเดเดณเตเดเต เดเดชเดฏเตเดเดคเตเดคเดฟเดจเตเดฑเต เดเดฆเดพเดนเดฐเดฃเดเตเดเดณเตเด เดเดพเดฃเดพเด
เดเดตเดฟเดเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเตเด เดธเตเดจเตเดฑเตเดธเต:7 เดเตบ เดเดฌเตเดฃเตเดเต.
เดชเตเดฐเตเดตเดฟเดทเดจเตผ
"เดตเดฟเดคเดฐเดฃเดเตเดเดพเดฐเตป" - เดธเดเดญเดตเดเตเดเตพ เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจ เดเดฐเต เดธเตเดฅเดพเดชเดจเด. เดฎเตเดณเดฟเดเตเดฏเตเดณเดฟเดจเตเดฑเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดคเต เด
เตปเดธเดฟเดฌเดฟเตพ เดเดฃเต, เดฎเดฑเตเดฑเตเดณเตเดณเดตเตผเดเตเดเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดเดธเตเดคเตเดฐเดฃเด เดเตเดฏเตเดคเดฟเดเตเดเดฟเดฒเตเดฒ, เด
เดคเดฟเดจเดพเตฝ เด เดตเดฟเดญเดพเดเดคเตเดคเต เดเดฐเต เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดเดชเดฏเตเดเดฟเดเตเดเต เด
เตปเดธเดฟเดฌเดฟเตพ เดเดเตเดธเตเดฑเตเดฑเตปเดกเดกเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดพเด.
เดเดตเดฟเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดงเดพเดฐเดพเดณเด เดเดพเดฐเตเดฏเดเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เดเดจเตเดฑเต เด
เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ เดเดพเตป เดชเตเดฐเดงเดพเดจ เดชเตเดฏเดฟเดจเตเดฑเตเดเตพ เดนเตเดฒเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด:
- เดเดณเดฟเดชเตเดธเตเดคเดเดเตเดเตพ: เดเดฟเดฒ เดเดเตเดเดเตเดเดณเดฟเตฝ เดเดคเต เดชเตเดฒเตเดฌเตเดเตเดเตเดเดณเดพเดฃเต เดเดชเดฏเตเดเดฟเดเตเดเตเดฃเตเดเดคเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเด.
provisioner:
name: ansible
playbooks:
create: create.yml
destroy: ../default/destroy.yml
converge: playbook.yml
side_effect: side_effect.yml
cleanup: cleanup.yml
- config_options:
ansible config
provisioner:
name: ansible
config_options:
defaults:
fact_caching: jsonfile
ssh_connection:
scp_if_ssh: True
- เดเดฃเดเตเดทเตป_เดเดชเตเดทเดจเตเดเตพ: เดเดชเตเดทเดจเตเดเตพ
เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต
provisioner:
name: ansible
connection_options:
ansible_ssh_common_args: "-o 'UserKnownHostsFile=/dev/null' -o 'ForwardAgent=yes'"
- เดเดชเตเดทเดจเตเดเตพ: เด เตปเดธเดฟเดฌเดฟเตพ เดเดชเตเดทเดจเตเดเดณเตเด เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเด
provisioner:
name: ansible
options:
vvv: true
diff: true
env:
FOO: BAR
เด เดตเดธเตเดฅเดฏเดฟเดฒเตเด
เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดธเตเดเตเดตเตปเดธเตเดเดณเตเดเต เดชเตเดฐเตเด เดตเดฟเดตเดฐเดฃเดตเตเด.
เดเต เดเตเตผเดคเตเดคเตเดเตเดฃเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดเดฎเดพเตปเดกเดฟเดจเตเดฑเตเดฏเตเด เดกเดฟเดซเตเตพเดเตเดเต เดเดเตเดทเตป เดฎเดพเดเตเดฐเดฟเดเตเดธเต เดฎเดพเดฑเตเดฑเดพเดจเดพเดเตเด <command>_sequence
เดจเดฎเตเดเตเดเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดเดเตเดเดเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดจเดฟเตผเดตเดเดฟเดเตเดเตเดเตเดฃเตเดเต เด
เดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดฎเตเดฒเตเดฏเดฎเดพเดฏเดฟ.
เดชเตเดฒเตเดฌเตเดเตเดเต เดฑเตบ เดเดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฎเตเดชเตเตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดเตเดฐเดฎเด เดฎเดพเดฑเตเดฑเดฃเดฎเตเดจเตเดจเต เดจเดฎเตเดเตเดเต เดชเดฑเดฏเดพเด: molecule converge
# ะธะทะฝะฐัะฐะปัะฝะพ:
# - dependency
# - create
# - prepare
# - converge
scenario:
name: default
converge_sequence:
- create
- converge
เดเตเดเตเดเต
เดเตเดธเตเดฑเตเดฑเตเดเตพเดเตเดเดพเดฏเดฟ เดเดฐเต เดเดเตเดเดเตเดเตเดเตเด เด
เดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดฒเดฟเดจเตเดฑเดฑเตเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต. เดกเดฟเดซเตเตพเดเตเดเต เดฒเดฟเดจเตเดฑเตผ เดเดฃเต testinfra
ะธ flake8
. เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเดชเตเดทเดจเตเดเตพ เดฎเตเดเดณเดฟเตฝ เดชเดฑเดเตเดเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต:
verifier:
name: testinfra
additional_files_or_dirs:
- ../path/to/test_1.py
- ../path/to/test_2.py
- ../path/to/directory/*
options:
n: 1
enabled: False
env:
FOO: bar
lint:
name: flake8
options:
benchmark: True
enabled: False
env:
FOO: bar
เดจเดฎเตเดเตเดเต เดจเดฎเตเดฎเตเดเต เดฑเตเดณเดฟเดฒเตเดเตเดเต เดฎเดเดเตเดเดพเด. เดจเดฎเตเดเตเดเต เดซเดฏเตฝ เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเด tasks/main.yml
เดเดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณเดคเต:
---
- name: Install nginx
apt:
name: nginx
state: present
- name: Start nginx
service:
name: nginx
state: started
เดเตเดเดพเดคเต เดเตเดธเตเดฑเตเดฑเตเดเตพ เดเตเตผเดเตเดเตเด molecule/default/tests/test_default.py
def test_nginx_is_installed(host):
nginx = host.package("nginx")
assert nginx.is_installed
def test_nginx_running_and_enabled(host):
nginx = host.service("nginx")
assert nginx.is_running
assert nginx.is_enabled
def test_nginx_config(host):
host.run("nginx -t")
เดเตเดฏเตเดคเต, เดเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดฎเดพเดคเตเดฐเดฎเต เดถเตเดทเดฟเดเตเดเตเดจเตเดจเตเดณเตเดณเต (เดฑเตเดณเดฟเดจเตเดฑเต เดฑเตเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต, เดเดพเตป เดจเดฟเดเตเดเดณเต เดเตผเดฎเตเดฎเดฟเดชเตเดชเดฟเดเตเดเดเตเดเต):
> molecule test
เดธเตโเดชเตเดฏเดฟเดฒเดฑเดฟเดจเต เดเตเดดเดฟเดฒเตเดณเตเดณ เดจเตเดฃเตเด เดเดเตโเดธเตโเดนเตเดธเตเดฑเตเดฑเต:
--> Validating schema <path>/nginx/molecule/default/molecule.yml.
Validation completed successfully.
--> Test matrix
โโโ default
โโโ lint
โโโ destroy
โโโ dependency
โโโ syntax
โโโ create
โโโ prepare
โโโ converge
โโโ idempotence
โโโ side_effect
โโโ verify
โโโ destroy
--> Scenario: 'default'
--> Action: 'lint'
--> Executing Yamllint on files found in <path>/nginx/...
Lint completed successfully.
--> Executing Flake8 on files found in <path>/nginx/molecule/default/tests/...
Lint completed successfully.
--> Executing Ansible Lint on <path>/nginx/molecule/default/playbook.yml...
Lint completed successfully.
--> Scenario: 'default'
--> Action: 'destroy'
PLAY [Destroy] *****************************************************************
TASK [Destroy molecule instance(s)] ********************************************
changed: [localhost] => (item=None)
changed: [localhost]
TASK [Wait for instance(s) deletion to complete] *******************************
ok: [localhost] => (item=None)
ok: [localhost]
TASK [Delete docker network(s)] ************************************************
PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0
--> Scenario: 'default'
--> Action: 'dependency'
Skipping, missing the requirements file.
--> Scenario: 'default'
--> Action: 'syntax'
playbook: <path>/nginx/molecule/default/playbook.yml
--> Scenario: 'default'
--> Action: 'create'
PLAY [Create] ******************************************************************
TASK [Log into a Docker registry] **********************************************
skipping: [localhost] => (item=None)
TASK [Create Dockerfiles from image names] *************************************
changed: [localhost] => (item=None)
changed: [localhost]
TASK [Discover local Docker images] ********************************************
ok: [localhost] => (item=None)
ok: [localhost]
TASK [Build an Ansible compatible image] ***************************************
changed: [localhost] => (item=None)
changed: [localhost]
TASK [Create docker network(s)] ************************************************
TASK [Create molecule instance(s)] *********************************************
changed: [localhost] => (item=None)
changed: [localhost]
TASK [Wait for instance(s) creation to complete] *******************************
changed: [localhost] => (item=None)
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=5 changed=4 unreachable=0 failed=0
--> Scenario: 'default'
--> Action: 'prepare'
Skipping, prepare playbook not configured.
--> Scenario: 'default'
--> Action: 'converge'
PLAY [Converge] ****************************************************************
TASK [Gathering Facts] *********************************************************
ok: [instance]
TASK [nginx : Install nginx] ***************************************************
changed: [instance]
TASK [nginx : Start nginx] *****************************************************
changed: [instance]
PLAY RECAP *********************************************************************
instance : ok=3 changed=2 unreachable=0 failed=0
--> Scenario: 'default'
--> Action: 'idempotence'
Idempotence completed successfully.
--> Scenario: 'default'
--> Action: 'side_effect'
Skipping, side effect playbook not configured.
--> Scenario: 'default'
--> Action: 'verify'
--> Executing Testinfra tests found in <path>/nginx/molecule/default/tests/...
============================= test session starts ==============================
platform darwin -- Python 2.7.15, pytest-4.3.0, py-1.8.0, pluggy-0.9.0
rootdir: <path>/nginx/molecule/default, inifile:
plugins: testinfra-1.16.0
collected 4 items
tests/test_default.py .... [100%]
========================== 4 passed in 27.23 seconds ===========================
Verifier completed successfully.
--> Scenario: 'default'
--> Action: 'destroy'
PLAY [Destroy] *****************************************************************
TASK [Destroy molecule instance(s)] ********************************************
changed: [localhost] => (item=None)
changed: [localhost]
TASK [Wait for instance(s) deletion to complete] *******************************
changed: [localhost] => (item=None)
changed: [localhost]
TASK [Delete docker network(s)] ************************************************
PLAY RECAP *********************************************************************
localhost : ok=2 changed=2 unreachable=0 failed=0
เดเดเตเดเดณเตเดเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดฑเตเตพ เดชเตเดฐเดถเตเดจเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเต เดชเดฐเตเดเตเดทเดฟเดเตเดเต.
เดเตเดฒเดฟ เดธเดฎเดฏเดคเตเดคเต เดชเตเดฐเดถเตเดจเดเตเดเตพ เดเดฃเตเดเตเดเตเดเดฟเตฝ เด
เดคเต เดเตผเดฎเตเดฎเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต molecule test
, เดจเดฟเดเตเดเตพ เดกเดฟเดซเตเตพเดเตเดเต เดธเตเดเตเดตเตปเดธเต เดฎเดพเดฑเตเดฑเดฟเดฏเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดคเดจเตเดฎเดพเดคเตเดฐ เด เดธเดเดญเดตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเด.
เดกเตเดฌเดเตเดเดฟเดเดเดฟเดจเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดฎเดพเตปเดกเตเดเตพ เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฃเต:
> molecule --debug <command> # debug info. ะัะธ ะพะฑััะฝะพะผ ะทะฐะฟััะบะต ะะพะปะตะบัะปะฐ ัะบััะฒะฐะตั ะปะพะณะธ.
> molecule converge # ะััะฐะฒะปัะตั ะธะฝััะฐะฝั ะฟะพัะปะต ะฟัะพะณะพะฝะฐ ัะตััะธััะตะผะพะน ัะพะปะธ.
> molecule login # ะะฐะนัะธ ะฒ ัะพะทะดะฐะฝะฝัะน ะธะฝััะฐะฝั.
> molecule --help # ะะพะปะฝัะน ัะฟะธัะพะบ ะบะพะผะฐะฝะด.
เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดฑเตเตพ
เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดเดฐเต เดฑเตเดณเดฟเดฒเตเดเตเดเต เดเดฐเต เดชเตเดคเดฟเดฏ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเตผเดเตเดเตเดจเตเดจเดคเต เดฑเตเตพ เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดฎเดพเตปเดกเตเดเตพเดเตเดเตเดชเตเดชเด:
# ะฟะพะปะฝัะน ัะฟะธัะพะบ ะดะพัััะฟะฝัั
ะฟะฐัะฐะผะตััะพะฒ
> molecule init scenarion --help
# ัะพะทะดะฐะฝะธะต ะฝะพะฒะพะณะพ ััะตะฝะฐัะธั
> molecule init scenario -r <role_name> -s <scenario_name>
เดฑเตเดณเดฟเดฒเต เดเดฆเตเดฏ เดธเดพเดนเดเดฐเตเดฏเด เดเดคเดพเดฃเตเดเตเดเดฟเตฝ, เดชเดฐเดพเดฎเตเดฑเตเดฑเตผ -s
เดเดฐเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดธเตเดทเตเดเดฟเดเตเดเตเดฎเตเดจเตเดจเดคเดฟเดจเดพเตฝ เดเดดเดฟเดตเดพเดเตเดเดพเดตเตเดจเตเดจเดคเดพเดฃเต default
.
เดคเตเดฐเตเดฎเดพเดจเด
เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดฎเตเดณเดฟเดเตเดฏเตเตพ เดตเดณเดฐเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดฒเตเดฒ, เดจเดฟเดเตเดเดณเตเดเต เดธเตเดตเดจเตเดคเด เดเตเดเดชเตเดฒเตเดฑเตเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต, เดเดฐเต เดชเตเดคเดฟเดฏ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเต เดเตปเดธเตเดฑเตเดฑเตปเดธเต เดเตเดฐเดฟเดฏเตเดทเตป, เดกเดฟเดฒเตเดทเตป เดชเตเดฒเตเดฌเตเดเตเดเตเดเดณเดฟเดฒเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเตเดเตเดเต เดเตเดฐเตเดเตเดเดพเด. CI เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเตเดฎเดพเดฏเดฟ เดคเดจเตเดฎเดพเดคเตเดฐ เดคเดเดธเตเดธเดฎเดฟเดฒเตเดฒเดพเดคเต เดธเดเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต เดชเตเดฒเตเดฌเตเดเตเดเตเดเดณเตเดเต เดฎเดพเดจเตเดตเตฝ เดเตเดธเตเดฑเตเดฑเดฟเดเดเดฟเดจเตเดณเตเดณ เดธเดฎเดฏเด เดเตเดฑเดฏเตเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต เดตเดฟเดเดธเดจเดคเตเดคเดฟเดจเตเดฑเต เดตเตเดเดค เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เดจเดฟเดเตเดเดณเตเดเต เดถเตเดฐเดฆเตเดงเดฏเตเดเตเดเต เดจเดจเตเดฆเดฟ. เดจเดฟเดเตเดเตพเดเตเดเต เด เตปเดธเดฟเดฌเดฟเตพ เดฑเตเดณเตเดเตพ เดชเดฐเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดชเดฐเดฟเดเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดคเต เดคเดจเตเดฎเดพเดคเตเดฐเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเดเดคเดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เด เดญเดฟเดชเตเดฐเดพเดฏเดเตเดเดณเดฟเตฝ เดเดเตเดเดณเตเดเต เดชเดฑเดฏเตเด!
เด เดตเดฒเดเดฌเด: www.habr.com