Ganizirani zinthu ziwiri zazikulu za Molekuli: Zochitika ndi Dalaivala.
Chitsanzo
Zolembazo zili ndi kufotokoza kwa zomwe, kuti, momwe zidzachitikire komanso motsatira ndondomeko ziti. Udindo umodzi ukhoza kukhala ndi zolemba zingapo, ndipo iliyonse ndi chikwatu panjira <role>/molecule/<scenario>, yomwe ili ndi mafotokozedwe a zochita zomwe zimafunika kuyesedwa. Script iyenera kuphatikizidwa default, zomwe zidzapangidwa zokha ngati mutayambitsa gawolo ndi Molekuli. Mayina a zolembedwa zotsatirazi ali ndi inu.
Kutsatizana kwa kuyesa zochita mu script kumatchedwa Matrix, ndipo mwachisawawa ndi:
(Masitepe olembedwa ?, kulumpha mwachisawawa ngati sichinatchulidwe ndi wogwiritsa ntchito)
lint - kuthamanga linter. Mwa kusakhazikika amagwiritsidwa ntchito yamllint и flake8,
destroy - Kuchotsa zochitika pakukhazikitsa komaliza kwa Molecule (ngati zilipo),
dependency? - kukhazikitsa kudalira koyenera kwa gawo loyesedwa,
syntax - kuyang'ana kalembedwe ka ntchitoyo ansible-playbook --syntax-check,
Iliyonse mwa njira zomwe tafotokozazi zitha kuyendetsedwa padera ndi molecule <command>. Koma ziyenera kumveka kuti pa lamulo lililonse lotereli pakhoza kukhala zochitika zake, zomwe mungathe kuzipeza pochita. molecule matrix <command>. Mwachitsanzo, poyendetsa lamulo converge (kuyendetsa playbook poyesedwa), zotsatirazi zidzachitika:
$ molecule matrix converge
...
└── default # название сценария
├── dependency # установка зависимостей
├── create # создание инстанса
├── prepare # преднастройка инстанса
└── converge # прогон плейбука
Zotsatira za izi zitha kusinthidwa. Ngati china chake pamndandandawo chachitika kale, chidzalumphidwa. Zomwe zilipo, komanso makonzedwe a zochitikazo, Molecule imasunga m'ndandanda $TMPDIR/molecule/<role>/<scenario>.
Onjezani masitepe ndi ? mutha kufotokozera zomwe mukufuna mumtundu wa ansible-playbook, ndikupanga dzina lafayilo molingana ndi sitepe: prepare.yml/side_effect.yml. Yembekezerani mafayilowa Mamolekyu adzakhala mufoda ya script.
dalaivala
Dalaivala ndi bungwe lomwe zoyeserera zimapangidwira.
Mndandanda wa madalaivala wamba omwe Molekuli ali ndi ma templates okonzeka ndi awa: Azure, Docker, EC2, GCE, LXC, LXD, OpenStack, Vagrant, Delegated.
Nthawi zambiri, ma templates ndi mafayilo create.yml и destroy.yml mu chikwatu cha script chomwe chimafotokoza kulengedwa ndi kufufutidwa kwa chochitika, motsatana.
Kupatulapo ndi Docker ndi Vagrant, chifukwa kulumikizana ndi ma module awo kumatha kuchitika popanda mafayilo omwe tawatchulawa.
Ndikoyenera kuunikira Dalaivala Wotumidwa, chifukwa ngati agwiritsidwa ntchito m'mafayilo popanga ndi kuchotsa chochitika, ntchito yokhayo ndi makonzedwe a zochitika amafotokozedwa, zina zonse ziyenera kufotokozedwa ndi injiniya.
> 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
Zinapezeka ngati ansible-udindo. Kupitilira apo, kuyanjana konse ndi CLI Molecule kumapangidwa kuchokera muzu wa gawolo.
Tiyeni tiwone zomwe zili m'ndandanda wa maudindo:
> tree molecule/default/
molecule/default/
├── Dockerfile.j2 # Jinja-шаблон для Dockerfile
├── INSTALL.rst. # Немного информации об установке зависимостей сценария
├── molecule.yml # Файл конфигурации
├── playbook.yml # Плейбук запуска роли
└── tests # Директория с тестами стадии verify
└── test_default.py
1 directory, 6 files
Tiyeni tiwunike config molecule/default/molecule.yml (m'malo mwa chithunzi cha docker chokha):
Imafotokoza masinthidwe a zochitika.
Pankhani ya docker ngati dalaivala, Molecule imasinthidwa pagawoli, ndipo chilichonse pamndandandawo chimapezeka Dockerfile.j2 ngati kusintha item.
Pankhani ya dalaivala yomwe imafuna create.yml и destroy.yml, gawo likupezeka mwa iwo monga molecule_yml.platforms, ndipo zobwerezabwereza zafotokozedwa kale m'mafayilo awa.
Popeza Molekyulu imapereka chiwongolero cha zochitika kumamodule oyenerera, mndandanda wazomwe zingatheke ziyenera kuyang'aniridwa pamenepo. Kwa docker, mwachitsanzo, module imagwiritsidwa ntchito docker_container_module. Ma module omwe amagwiritsidwa ntchito m'madalaivala ena angapezekemo zolemba.
Komanso zitsanzo za ntchito zosiyanasiyana madalaivala angapezeke m’mayesero a Molekuli weniweni.
Bwezerani apa cent: 7 pa Ubuntu.
wopereka
"Supplier" - bungwe lomwe limayang'anira zochitika. Pankhani ya Molecule, izi ndi zomveka, kuthandizira kwa ena sikunakonzedwe, kotero gawoli likhoza kutchedwa kusinthika kowonjezereka kowonjezereka ndi chenjezo.
Apa mutha kufotokozera zinthu zambiri, ndikuwunikira mfundo zazikulu, m'malingaliro anga:
mabuku osewerera: mutha kufotokoza kuti ndi mabuku ati osewerera omwe akuyenera kugwiritsidwa ntchito pamagawo ena.
Kukhazikitsa dongosolo la mayeso ndi linter kwa izo. Linter yokhazikika ndi testinfra и flake8. Zosankha zomwe zingatheke ndizofanana ndi zomwe zili pamwambapa: