เจนเฉเจฒเฉ เจนเจฐ เจเฉเจ!
เจฎเฉเจ เจเฉฑเจ เจนเฉเจเจฒ เจฌเฉเจเจฟเฉฐเจ เจธเฉเจตเจพ เจฒเจ เจเฉฑเจ DevOps เจเฉฐเจเฉเจจเฉเจ
เจฐ เจตเจเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเจพเจเฅค
Ostrovok.ru 'เจคเฉ เจ เจธเฉเจ เจเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจชเฉเจฐเจฌเฉฐเจงเจ เจตเจเฉเจ เจเจตเจพเจฌเจฆเฉเจน เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค เจนเจพเจฒ เจนเฉ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจญเฉเจฎเจฟเจเจพเจตเจพเจ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค 'เจคเฉ เจเจ เจนเจพเจ, เจชเจฐ, เจเจฟเจตเฉเจ เจเจฟ เจเจน เจธเจพเจนเจฎเจฃเฉ เจเจเจ เจนเฉ, เจเจธเจฆเฉ เจฒเจ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจธเจพเจงเจจ เจจเจนเฉเจ เจนเจจ - เจธเจญ เจคเฉเจ เจชเฉเจฐเจธเจฟเฉฑเจง, เจธเจผเจพเจเจฆ, เจ เจฃเฉ เจซเจฐเฉเจฎเจตเจฐเจ เจนเฉ, เจเจธ เจฒเจ เจ เจธเฉเจ เจเจธเจจเฉเฉฐ เจตเจฐเจคเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจนเฉ. เจชเจฐ เจเจน เจชเจคเจพ เจเจฒเจฟเจ เจเจฟ เจเจธ เจฆเฉ เจฆเจธเจคเจพเจตเฉเจเจผ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจจเฉเจเจธเจพเจจเจพเจ เจฌเจพเจฐเฉ เจเฉเฉฑเจช เจนเจจ. เจธเจพเจจเฉเฉฐ เจฐเฉเจธเฉ เจตเจฟเฉฑเจ เจเจพเจซเจผเฉ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจเจพเจเจก เจจเจนเฉเจ เจฎเจฟเจฒ เจธเจเฉ, เจเจธ เจฒเจ เจ เจธเฉเจ เจเจน เจฒเฉเจ เจฒเจฟเจเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจนเฉเฅค
เจ เจฃเฉ
เจธเจฐเจฒเฉเจเฉเจฐเจฟเจค เจตเจฐเจฃเจจ: เจ
เจฃเฉ เจคเฉเจนเจพเจกเฉ เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจชเจฒเฉเจเจซเจพเจฐเจฎ 'เจคเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ (เจเจฒเจพเจเจก, เจตเจฐเจเฉเจ
เจฒ เจฎเจธเจผเฉเจจ, เจเฉฐเจเฉเจจเจฐ; เจนเฉเจฐ เจตเฉเจฐเจตเจฟเจเจ เจฒเจ, เจญเจพเจ เจตเฉเจเฉ
เจนเฉเจฃ เจนเฉเจฐ.
เจฅเจฟเจเจฐเฉ เจฆเจพ เจเฉเจ เจนเจฟเฉฑเจธเจพ
เจเจ เจ เจธเฉเจ เจ เจฃเฉ เจฆเฉเจเจ เจฆเฉ เจฎเฉเฉฑเจ เจเจเจพเจเจเจ 'เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเฉเจ: เจฆเฉเจฐเจฟเจธเจผ เจ เจคเฉ เจกเฉเจฐเจพเจเจตเจฐเฅค
เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ
เจธเจเฉเจฐเจฟเจชเจ เจตเจฟเฉฑเจ เจเฉ, เจเจฟเฉฑเจฅเฉ, เจเจฟเจตเฉเจ เจ
เจคเฉ เจเจฟเจธ เจเฉเจฐเจฎ เจตเจฟเฉฑเจ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ เจเจธเจฆเจพ เจตเจฐเจฃเจจ เจธเจผเจพเจฎเจฒ เจนเฉเฅค เจเฉฑเจ เจฐเฉเจฒ เจตเจฟเฉฑเจ เจเจ เจธเจเฉเจฐเจฟเจชเจเจพเจ เจนเฉ เจธเจเจฆเฉเจเจ เจนเจจ, เจ
เจคเฉ เจนเจฐ เจเฉฑเจ เจฎเจพเจฐเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจนเฉ <role>/molecule/<scenario>
, เจเฉเจธเจ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจเจพเจฐเจตเจพเจเจเจ เจฆเจพ เจตเฉเจฐเจตเจพ เจฐเฉฑเจเจฆเจพ เจนเฉเฅค เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ default
, เจเฉ เจเจฟ เจเจเฉเจฎเฉเจเจฟเจเจฒเฉ เจฌเจฃ เจเจพเจตเฉเจเฉ เจเฉเจเจฐ เจคเฉเจธเฉเจ Molecule เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจญเฉเจฎเจฟเจเจพ เจจเฉเฉฐ เจธเจผเฉเจฐเฉ เจเจฐเจฆเฉ เจนเฉเฅค เจนเฉเจ เจฒเจฟเจเฉเจเจ เจธเจเฉเจฐเจฟเจชเจเจพเจ เจฆเฉ เจจเจพเจฎ เจคเฉเจนเจพเจกเฉ เจฎเจฐเจเจผเฉ เจ
เจจเฉเจธเจพเจฐ เจนเจจเฅค
เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจตเจฟเฉฑเจ เจเจพเจเจ เจเจฟเจฐเจฟเจเจตเจพเจ เจฆเฉ เจเฉเจฐเจฎ เจจเฉเฉฐ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ เจฎเฉเจเจฐเจฟเจเจธ, เจ เจคเฉ เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจน เจเจธ เจคเจฐเฉเจนเจพเจ เจนเฉ:
(เจเจฆเจฎเจพเจ เจฆเฉ เจจเจฟเจธเจผเจพเจจเจฆเฉเจนเฉ เจเฉเจคเฉ เจเจ ?
, เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจเฉฑเจกเฉ เจเจพเจเจฆเฉ เจนเจจ เจเฉเจเจฐ เจเจชเจญเฉเจเจคเจพ เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจจเจนเฉเจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ)
lint
- เจเฉฑเจฒ เจฐเจนเฉ เจฒเจฟเฉฐเจเจฐเฅค เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจyamllint
ะธflake8
,destroy
- เจ เจฃเฉ เจฆเฉ เจเจเจฐเฉ เจฒเจพเจเจ เจคเฉเจ เจเจฆเจพเจนเจฐเจจเจพเจ เจจเฉเฉฐ เจฎเจฟเจเจพเจเจฃเจพ (เจเฉ เจเฉเจ เจฌเจเจฟเจ เจนเฉ),dependency
? - เจเฉเจธเจ เจเฉเจคเฉ เจญเฉเจฎเจฟเจเจพ เจฆเฉ เจเจตเจพเจฌเจฆเฉเจน เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ,syntax
- เจตเจฐเจค เจเฉ เจญเฉเจฎเจฟเจเจพ เจธเฉฐเจเฉเจเจธ เจฆเฉ เจเจพเจเจ เจเจฐ เจฐเจฟเจนเจพ เจนเฉansible-playbook --syntax-check
,create
- เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ เจฌเจฃเจพเจเจฃเจพ,prepare
? - เจเจฆเจพเจนเจฐเจฃ เจฆเฉ เจคเจฟเจเจฐเฉ; เจเจฆเจพเจนเจฐเจจ เจฒเจ python2 เจฆเฉ เจเจพเจเจ/เจเฉฐเจธเจเจพเจฒ เจเจฐเจจเจพconverge
- เจเฉเจธเจ เจเฉเจคเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจเจพ,idempotence
- เจเจฎเจชเฉเจเฉเจเจธเฉ เจเฉเจธเจ เจฒเจ เจชเจฒเฉเจฌเฉเฉฑเจ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจเจฒเจพเจ,side_effect
? - เจเจพเจฐเจตเจพเจเจเจ เจธเจฟเฉฑเจงเฉ เจคเฉเจฐ 'เจคเฉ เจญเฉเจฎเจฟเจเจพ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจจเจนเฉเจ เจนเจจ, เจชเจฐ เจเฉเจธเจเจพเจ เจฒเจ เจเจผเจฐเฉเจฐเฉ เจนเจจ,verify
โ เจตเจฐเจคเจฆเฉ เจนเฉเจ เจจเจคเฉเจเฉ เจตเจเฉเจ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจเฉฑเจฒ เจฐเจนเฉ เจเฉเจธเจtestinfra
(เจฎเฉเจฒ) /goss
/inspec
,cleanup
? - (เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจตเจฟเฉฑเจ) - เจฎเฉเจเฉ เจคเฉเจฐ 'เจคเฉ, เจ เจฃเฉ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจญเจพเจตเจฟเจค เจฌเจพเจนเจฐเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจจเฉเฉฐ "เจธเจซเจผเจพเจ" เจเจฐเจจเจพ,destroy
- เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ เจจเฉเฉฐ เจฎเจฟเจเจพเจเจฃเจพ.
เจเจน เจเฉเจฐเจฎ เจเจผเจฟเจเจฆเจพเจคเจฐ เจฎเจพเจฎเจฒเจฟเจเจ เจจเฉเฉฐ เจเจตเจฐ เจเจฐเจฆเจพ เจนเฉ, เจชเจฐ เจเฉ เจฒเฉเฉ เจนเฉเจตเฉ เจคเจพเจ เจธเฉเจงเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจเจชเจฐเฉเจเจค เจเจฆเจฎเจพเจ เจตเจฟเฉฑเจเฉเจ เจนเจฐเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจเจฒเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ molecule <command>
. เจชเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจธเจฎเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟ เจนเจฐเฉเจ เจ
เจเจฟเจนเฉ cli เจเจฎเจพเจเจก เจฒเจ เจเจฟเจฐเจฟเจเจตเจพเจ เจฆเจพ เจเจชเจฃเจพ เจเฉเจฐเจฎ เจนเฉ เจธเจเจฆเจพ เจนเฉ, เจเจฟเจธ เจจเฉเฉฐ เจคเฉเจธเฉเจ เจเจฒเจพ เจเฉ เจฒเฉฑเจญ เจธเจเจฆเฉ เจนเฉเฅค molecule matrix <command>
. เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเจฆเฉเจ เจเจฎเจพเจเจก เจเจฒเจพเจเจเจฆเฉ เจนเฉ converge
(เจเฉเจธเจ เจเฉเจคเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพ) เจนเฉเจ เจฒเจฟเจเฉเจเจ เจเจพเจฐเจตเจพเจเจเจ เจเฉเจคเฉเจเจ เจเจพเจฃเจเฉเจเจ:
$ molecule matrix converge
...
โโโ default # ะฝะฐะทะฒะฐะฝะธะต ััะตะฝะฐัะธั
โโโ dependency # ัััะฐะฝะพะฒะบะฐ ะทะฐะฒะธัะธะผะพััะตะน
โโโ create # ัะพะทะดะฐะฝะธะต ะธะฝััะฐะฝัะฐ
โโโ prepare # ะฟัะตะดะฝะฐัััะพะนะบะฐ ะธะฝััะฐะฝัะฐ
โโโ converge # ะฟัะพะณะพะฝ ะฟะปะตะนะฑัะบะฐ
เจเจนเจจเจพเจ เจเจพเจฐเจตเจพเจเจเจ เจฆเฉ เจเฉเจฐเจฎ เจจเฉเฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ. เจเฉเจเจฐ เจธเฉเจเฉ เจตเจฟเฉฑเจเฉเจ เจเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจชเฉเจฐเจพ เจนเฉ เจเจฟเจ เจนเฉ, เจคเจพเจ เจเจธเจจเฉเฉฐ เจเฉฑเจก เจฆเจฟเฉฑเจคเจพ เจเจพเจตเฉเจเจพเฅค เจฎเฉเจเฉเจฆเจพ เจธเจฅเจฟเจคเฉ, เจ
เจคเฉ เจจเจพเจฒ เจนเฉ เจเจฆเจพเจนเจฐเจจ เจธเฉฐเจฐเจเจจเจพ, เจ
เจฃเฉ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ $TMPDIR/molecule/<role>/<scenario>
.
เจจเจพเจฒ เจเจฆเจฎ เจเฉเฉเฉ ?
เจคเฉเจธเฉเจ เจเจตเจพเจฌเฉ เจชเจฒเฉเจฌเฉเฉฑเจ เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจเจพเจฐเจตเจพเจเจเจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจ
เจคเฉ เจเจฆเจฎ เจฆเฉ เจ
เจจเฉเจธเจพเจฐ เจซเจพเจเจฒ เจจเจพเจฎ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ: prepare.yml
/side_effect.yml
. เจเจน เจ
เจฃเฉ เจซเจพเจเจฒเจพเจ เจธเจเฉเจฐเจฟเจชเจ เจซเฉเจฒเจกเจฐ เจตเจฟเฉฑเจ เจนเฉเจฃ เจฆเฉ เจเจฎเฉเจฆ เจเจฐเฉเฅค
เจกเจฐเจพเจเจตเจฐ
เจเฉฑเจ เจกเฉเจฐเจพเจเจตเจฐ เจเฉฑเจ เจ
เจเจฟเจนเฉ เจนเจธเจคเฉ เจนเฉ เจเจฟเฉฑเจฅเฉ เจเฉเจธเจเจพเจ เจฒเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจฌเจฃเจพเจเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจเฅค
เจธเจเฉเจเจกเจฐเจก เจกเฉเจฐเจพเจเจตเจฐเจพเจ เจฆเฉ เจธเฉเจเฉ เจเจฟเจธ เจฒเจ เจ
เจฃเฉ เจเฉเจฒ เจคเจฟเจเจฐ เจเฉเจเจชเจฒเฉเจ เจนเจจ: Azure, Docker, EC2, GCE, LXC, LXD, OpenStack, Vagrant, Delegated.
เจเจผเจฟเจเจฆเจพเจคเจฐ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ, เจเฉเจเจชเจฒเฉเจ เจซเจพเจเจฒเจพเจ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ 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
เจจเจฟเจฐเจญเจฐเจคเจพ
เจเจน เจญเจพเจ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ เจธเจฐเฉเจค เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจธเฉฐเจญเจต เจตเจฟเจเจฒเจช:
เจธเจผเฉเฉฑเจฒ เจตเจฐเจคเจฃ เจฒเจ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจเจฎเจพเจเจก เจธเจผเฉเฉฑเจฒ เจนเฉ เจเฉเจเจฐ เจเจฒเฉเจเจธเฉ เจ เจคเฉ เจเจฟเจฒเจ เจคเฉเจนเจพเจกเฉเจเจ เจฒเฉเฉเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจพ เจจเจนเฉเจ เจเจฐเจฆเฉ เจนเจจเฅค
เจฎเฉเจ เจเฉฑเจฅเฉ เจเจผเจฟเจเจฆเจพ เจฆเฉเจฐ เจคเฉฑเจ เจจเจนเฉเจ เจฐเจนเจพเจเจเจพ, เจเจธ เจตเจฟเฉฑเจ เจเจพเจซเจผเฉ เจตเจฐเจฃเจจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ
เจกเจฐเจพเจเจตเจฐ
เจกเจฐเจพเจเจตเจฐ เจฆเจพ เจจเจพเจฎเฅค เจธเจพเจกเฉ เจฒเจ เจเจน เจกเฉเจเจฐ เจนเฉ.
lint
เจฏเจฎเจฒเจฟเจจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจฒเจฟเฉฐเจเจฐ เจตเจเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค
เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจเจธ เจนเจฟเฉฑเจธเฉ เจตเจฟเฉฑเจ เจเจชเจฏเฉเจเฉ เจตเจฟเจเจฒเจช yamllint, เจซเจพเจฐเจตเจฐเจก เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ, เจเจพเจ linter เจจเฉเฉฐ เจ เจฏเฉเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจเจฐเจจ เจฆเฉ เจฏเฉเจเจคเจพ เจนเจจ:
lint:
name: yamllint
options:
config-file: foo/bar
env:
FOO: bar
enabled: False
เจชเจฒเฉเจเจซเจพเจฐเจฎ
เจเจฆเจพเจนเจฐเจจเจพเจ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจเฉฑเจ เจกเจฐเจพเจเจตเจฐ เจฆเฉ เจคเฉเจฐ เจคเฉ เจกเฉเจเจฐ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ, เจ
เจฃเฉ เจเจธ เจญเจพเจ เจเฉฑเจคเฉ เจฆเฉเจนเจฐเจพเจเจเจฆเจพ เจนเฉ, เจ
เจคเฉ เจธเฉเจเฉ เจฆเจพ เจนเจฐเฉเจ เจคเฉฑเจค เจเจธ เจตเจฟเฉฑเจ เจเจชเจฒเจฌเจง เจนเฉ Dockerfile.j2
เจเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ item
.
เจเจฟเจธ เจตเจฟเจ เจกเจฐเจพเจเจตเจฐ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจตเจฟเจ เจธเฉ create.yml
ะธ destroy.yml
, เจธเฉเจเจธเจผเจจ เจเจนเจจเจพเจ เจตเจฟเฉฑเจ เจเจชเจฒเจฌเจง เจนเฉ molecule_yml.platforms
, เจ
เจคเฉ เจเจธ เจเฉฑเจคเฉ เจฆเฉเจนเจฐเจพเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจนเจจเจพเจ เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจฃเจฟเจค เจนเจจเฅค
เจเจฟเจเจเจเจฟ Molecule Ansible เจฎเฉเจกเจฟเจเจฒเจพเจ เจจเฉเฉฐ เจเจฆเจพเจนเจฐเจจ เจชเฉเจฐเจฌเฉฐเจงเจจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจฅเฉ เจธเฉฐเจญเจต เจธเฉเจเจฟเฉฐเจเจพเจ เจฆเฉ เจธเฉเจเฉ เจฒเฉฑเจญเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉเฅค เจกเฉเจเจฐ เจฒเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจฎเฉเจกเฉเจเจฒ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ
เจคเฉเจธเฉเจ เจตเฉฑเจ-เจตเฉฑเจ เจกเจฐเจพเจเจตเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจตเฉ เจฒเฉฑเจญ เจธเจเจฆเฉ เจนเฉ
เจเจ เจเฉฑเจฅเฉ เจฌเจฆเจฒเฉเจ centos: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:
เจเจตเจพเจฌเจฆเฉเจน เจธเฉฐเจฐเจเจจเจพ
provisioner:
name: ansible
config_options:
defaults:
fact_caching: jsonfile
ssh_connection:
scp_if_ssh: True
- connect_options: เจตเจฟเจเจฒเจช
เจเฉเจจเฉเจเจเฉเจตเจฟเจเฉ
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 เจเจฆเจพเจนเจฐเจจ เจจเฉเฉฐ เจฎเจฟเจเจพ เจฆเฉเจตเฉเจเจพเฅค
เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจกเฉเจฌเฉฑเจเจฟเฉฐเจ เจฒเจ เจเจชเจฏเฉเจเฉ เจนเจจ:
> 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