แแก แแ แแก แฉแแแแฌแแ แ
แแแแ แ แแแแแขแแแแ แแแฌแงแแแฃแแ, แแแแแกแแแแ แ แแแแ แฎแแแแ แแแแแแแแ แแแแ, แ แแแแแ แแแแแแแแ แแแแ แแแแแแ แแฌแงแแแก แฃแฎแแจแ แ แแแแแแแกแแแ แแแแกแฎแแแแแแแก. แแก แแ แช แแแ แแแ แแ แแ แช แชแฃแแ, แแก แแ แแก แแแชแแแฃแแแแ, แ แแแแแแแแแช แแแแแแ แ แแฃแแแ แแ แฃแแแ แแชแฎแแแ แ. แแ แแ แแชแแกแแก แแแฌแแแแ แ แแคแแฅแขแแ แแ แแแ. Refactoring แแแคแ แแกแขแ แฃแฅแขแฃแ แ แ แแแแ แช แแแแ. แแแ, แแแแฌแงแแก แแกแขแแ แแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แฃแแแ แแแฎแแแก Ansible-แแก แ แแคแแฅแขแแ แ แแ แ แฌแแแแฌแแแจแ แแ แแ แแแแแแแแแ.
แแแแแแแแ แแแแแก แแแแแแแแ
แแฆแ #1: แแแชแแแแขแ แแฃแแแแแแ
แแ แแฎแแ แแงแ แแแ แแแแแ แแ แแแฅแขแ. แแแก แฐแงแแแแ Dev แแแแแแแแ แแแแก แแฃแแแ แแ Ops แแแแแแ แแแ. แแกแแแ แแแแแ แแ แแแแแแแก แแแแแ แแแแแแ: แ แแแแ แแแแแแแแแกแแ แกแแ แแแ แแแ แแ แแแฃแจแแแ แแแแแแแชแแ. แแ แแแแแแ แแก แแงแ, แ แแ แแแแแแฃแแแ แแฃแแแแ แแก แแ แแแแแแ แแแแแกแแแฃแ แแ แแแแแญแ แ. แแ แแแฅแขแแ แแแแแฌแงแแ Ansible-แแก แแแแแงแแแแแ Dev แแ Ops แแฃแแแแแก แจแแ แแก แชแแแแแก แกแแแฅแ แแแแแแชแแแกแแแแก.
แแฆแ #89: แแแแแแแแ แแแแแก แแแแแแแแ
แแแแแแแช แแ แจแแฃแแฉแแแแแแ, แกแฃแ แแแ แแแแก แแแแแแแแ แ แแช แจแแแซแแแแ แฃแแแแแกแแ, แแแแ แแ แแก แแแแแแแแ แแแแ แแฆแแแฉแแแ. แ แแแแ แฎแแแแ แแก?
- แแฅ แแแแแฃแแแแแแ แแแแแแแแ แแแแฅแแก, แแแแซแฃแ แ แฐแแแ แแแแแแแแแ แแ แแแ แ แแแแแกแฌแแ แแ.
- แแฅแแแ แแ แแญแแ แแแแแ แแแแฃแแแแขแแชแแแก แแแฌแแ แ แแ แงแแแแแคแแ แ แแแแแแแ, แ แ แฎแแแแ แแฅ.
- แแ แแแชแ Ansible/Python/Bash/Terraform! แจแแฎแแแ, แ แแแแ แจแแแแซแแแ แแแฃแแ แ!
- แแ แแแ Full Stack Overflow แแแแแแแแแ แ แแ แแแแแแแแแ แ แแก stackoverflow-แแแ, แแ แแแชแ แ แแแแ แแฃแจแแแแก, แแแแ แแ แแแแแ แ แฉแแแก แแ แแ แแแแแแแก แแแแแ แแแก.
แจแแแแแแ, แจแแแแซแแแแ แแแแฆแแ แแแฃแแแแแ แ แขแแแแก แแแแ, แ แแแแแกแแแแกแแช แแ แแ แกแแแแแก แแแแฃแแแแขแแชแแ, แแแฃแแแแแ แแ แ แแก แแแแแแแก, แกแแญแแ แแ แแฃ แแ แ, แแแแ แแ แแ แแแแแแ แแก แแ แแก, แ แแ แแฅแแแ แแญแแ แแแแแ แแแกแ แแแแแแแแ แแแ, แจแแชแแแ, แงแแแแ แฏแแแแแก แแ แกแแงแ แแแแแก แแแแแขแแแ. , แ แแช แแแแแ แฃแคแ แ แแแซแแแแแก แกแแขแฃแแชแแแก.
- hosts: localhost
tasks:
- shell: echo -n Z >> a.txt && cat a.txt
register: output
delay: 1
retries: 5
until: not output.stdout.find("ZZZ")
แแฆแ #109: แแ แแแแแแแก แแแชแแแแแแ แแแ
แแแแแแแแ แแแแแ แฉแแคแแฅแ แแแฃแแ แแ แแแแแ แแแแ IaC แแแแแแ แแฆแแ แแแแแงแแคแแแแแก แแแแฎแแแ แแแแแแแก/แแแแแแกแแก/แกแฎแแ แแฃแแแแแแก แแแแฎแแแแแแก แแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแจแ แชแแแแแแแแแแก แจแแขแแแแก แแ แ แแฆแแ แแ แแก แแแกแแฆแแแ. แแ แแแแแแขแจแ แฉแแแแแ แแแแแแ, แ แแ แแ แแ แแแแแแแแก แแแฅแแแแแแ.
IaC แ แแคแแฅแขแแ แแ แแแ
แแฆแ #139: แแแแแแแแแ แแญแแ แแแแแ แ แแคแแฅแขแแ แแ แแแ?
แกแแแแ แ แแคแแฅแขแแ แแ แแฉแฅแแ แแแ, แแฅแแแ แฃแแแ แฃแแแกแฃแฎแแ แ แแแแแแแแ แแแแจแแแแแแแแ แแแแฎแแแก:
- แ แแขแแ แแญแแ แแแแ แแก แงแแแแแคแแ แ?
- แแ แ แแแฅแแก?
- แกแแแแแ แแกแแ แแฃ แแ แ แชแแแแ?
แแฃ แแ แแชแแ แ แแแแ แฃแแแกแฃแฎแแ แแแแฎแแแแก, แแแจแแ แ แแคแแฅแขแแ แแ แแแ แแแกแ แฃแแแแแ แแแแแ, แกแแแแ แแก แแแแฌแงแแแ, แแ แจแแแซแแแแ แแแฃแแ แแกแแแก. แแแแขแแ แ แแ แแแแแชแแแแแแ แแฅแแแแ (
แแฆแ #149: แ แแคแแฅแขแแ แแแแแก แแแแแแแแแ
แแแ แแแแ แ แแช แแ แแก แแแแแแแแแ. แแแแแฌแงแแแขแแ แ แแก แแแแแแแแแแ. แแแแกแแแแแก แฉแแแ แแฃแแแแจแแ แแแแแ, แแแแฃแแแแ แแ แแแแแแฃแ แกแคแแ แแแแก แแ แแฎแแแแแแ แแแแ แแแแแญแ แแก แแแแแก. แฉแแแ แแฌแแ แ แแแฆแแแฃแ แชแแแแแแก แ แแแแ แฆแแช, แแแแแแแแแ, แกแขแแขแแแก แจแแ แฌแงแแแจแ, แแกแ, แ แแ แ แแแแกแแช แฉแแแแแ แแแแฎแแ "แ แ แแ แแก แกแแฃแแแแแกแ?" แแ "แ แ แแ แแก แกแฌแแ แ?" แแแ แแ แแแแแแแแ แแแแก. แฉแแแแก แจแแแแฎแแแแแจแ, แฉแแแ แแแแ แฉแแ แแแแแแ แแแงแแแ แแ แแแแขแแแ: แฉแแแ แแงแแคแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแขแแ แ แแแญแ แแแแ/แแแฃแ แแแแ. แแก แแแแแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแฆแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแแแแ แแแฃแแ แแแฌแแแ, แแแแแแ แ แแก แแแแแแแก แแก, แแแคแแ แแ แแแ แขแแกแขแแแแ แแ แจแแชแแแแแ แแแ แแ แแคแ แแก แแแ แฆแแแแแก แจแแจแแก แแแ แแจแ.
แแแแแแแก, แ แแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แขแแกแขแแ แแแ แฎแแแแ แฅแแแแฃแแฎแแแ แแ แแฅ แแฆแกแแแแจแแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แขแแกแขแแ แแแแก แแแ แแแแแ. แแฃแกแขแแ แแแแแ แแแแ, แ แแแแแแช แแแแฃแจแแแแแแก แแ แแชแแกแจแแ, แแแแ แแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแกแแแแก: แฉแแแ แแแแแแแแแแ แ แแแคแ แกแฌแ แแคแ แขแแกแขแแแแแแ, แ แแแแแแแช แแแแฌแแแแก แแแ แขแแ แ แแฆแแชแแแแก, แ แแแแ แแชแแ แฉแแฆแ แแแแแแ, แซแแแ แแแฆแแ แแแฃแ แกแ แฃแแคแแกแแแแ แขแแกแขแแแแ, แ แแแแแแแช แแแ แชแแแแแแ แแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก.
แแแกแฃแฎแแกแแแแแแแ แขแแกแขแแ แแแแก แแชแแแแแแแแ
แกแแแแ แฉแแแ แแฆแแฌแแ แ, แแฃ แ แแแแ แแแแแจแฃแฅแแ Ansible แขแแกแขแแแ แแ แแแฅแขแแ, แแ แแฆแแฌแแ แแชแแแแแแแแกแ แแ แแแแแแแแแก, แ แแแแแแแช แแแ แ แแฅแแแแ แกแแจแฃแแแแแ แแแแแแแงแแแแแแแ แแแฆแแแฃแแ แแแแแฌแงแแแขแแแแแแแแก แแแแขแแฅแกแขแแก แแแกแแแแแแ.
แแฆแ No -997: SDS แฃแแ แฃแแแแแงแแคแ
แแแ แแแแแ แแแแขแแกแขแ Ansible แแงแ SDS-แแก (แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแแกแแแฆแแ แฃแแ แกแแชแแแ) แจแแแฃแจแแแแแแก แแ แแแฅแขแแ. แแ แแแแแแ แชแแแแ แกแขแแขแแแ
แแฆแ # -701: แกแขแแชแแแแแ แฃแแ แแ แกแแขแแกแขแ แกแแแแแ แแฃแแ
Ansible แขแแกแขแแ แแแแก แแแแแก แแแแแแแแ แแแ แแงแ แแแ แฎแแแกแแฌแงแแแแแก แแแแแงแแแแแ, แแแ แซแแ, แกแแขแแกแขแ แกแแแแแ แแฃแแ / แกแแแแแ แแฃแแ-แชแ แแ แแแกแแแฅแชแแ. แแ แฉแแแแแ แแแแแกแแแฆแแ แ แ แฃแแแก แชแแแแแ (แแแแแขแแแแแ แแแคแแ แแแชแแแกแแแแก แแฎแแแแ แกแขแแขแแ แฐแแแ แแแ:
แแแแแแแ, แฎแกแแแ แ แแฃแจแแแแแ, แแแแ แแ แแงแ แแแแแฅแ แฐแแขแแ แแแแแฃแ แแแแก แแแแ. แ แแแแกแแช แขแแกแขแแ แแแฃแแ แแแแแแแแแแแก แ แแแแแแแแ แแแแแแ แแ 13 แซแแ แแแแ แ แแแแแแ แแ 2 แแแขแ แ แแแแแแ, แ แแแแแแแช แแแ แแแแแแแแ แฃแคแ แ แแชแแ แ แ แแแแแก, แแแจแแ แแแฃแแแแแแแแ แขแแกแขแแแ แแแแฌแงแ 70 แฌแฃแแแก แแแแแแแแแแแจแ, แ แแช แแแแฅแแแก 2-แฏแแ แแแขแแ. XP (แแฅแกแขแ แแแแแฃแ แ แแ แแแ แแแแ แแแแก) แแ แแฅแขแแแแแ แกแแฃแแแ แ แ แแฃแแ แแงแ, แ แแแแแ... แแ แแแแก แแ แกแฃแ แก 70 แฌแฃแแแก แแแแแแ. แแก แแงแ แแแแแแแแก แจแแชแแแแก แแแแแแ
แแฆแ # -601: แแแกแแแฃแแ แแ แแแแแแฃแแ
แแแแชแแแขแฃแแแฃแ แแ, แแก แขแแกแขแแก แกแแแแแ แแฃแแแก แแกแแแแกแแ, แแฎแแแแ แฉแแแ แแแแแแแขแแแแ แ แแแฃแ แ แขแแกแขแแ แแแ แแแแแ แแ แแ แจแแแชแแแแแ แกแขแแแ. แจแแแแแแ, แแ แ แจแแแชแแ แแ แกแขแแแแแฃแ 20-25 แฌแฃแแแแแ 7 แ แแแแกแแแแก.
แจแแแแฌแแแแฃแแ แ แแแแแแก แ แแชแฎแแแก 17-แแแ แแแแ แแแ แแ 45 แ แแแแก แแแแแญแแแแ, แฉแแแ แแก แแแแแขแแ แแ 28 แฌแฃแแจแ 2 jenkins slave-แแ.
แแฆแ #167: แแ แแแฅแขแจแ Ansible แขแแกแขแแแแก แแแแแขแแแ
แแแแ แแแแแแแแแ, แจแแฃแซแแแแแแ แแฅแแแแ แ แแคแแฅแขแแ แแก แแแแชแแแแก แแแฉแฅแแ แแแ. แแแแแแแแ แฃแแแ แแงแแก แแแแแแแแแ แแกแ, แ แแ แฌแแ แแแแ แแแขแแฎแแ แแ แกแแแแแก แแแฌแแ-แแแฌแแ แญแแแแ แฉแแแก แแแแแแ. แฃแแแ แแ แกแแแแแแแก แแแแก แแแแแแ, แแแแแฎแแ แแฃ แแ แ แกแฌแแ แ แแแแแ แแฃแแแแแ, แ แแแแแ แฎแแแก แฃแแแ แฌแแฎแแแแ.
แแแแแแแ, แแ แแฅแแก แแแแจแแแแแแแ แ แแแแ แแแแแแแแแ, แจแแแแซแแแแ แแแฌแแ แแ แคแฃแ แชแแแแ, แจแแแแซแแแแ แแแ แแแแแ แกแขแแแแ แแแ แแแแแแ, แฏแแ แแจแ แจแแฅแแแแ แแแแชแแแแแ, แแ แจแแแแซแแแแ แแแฎแกแแแ Google Docs แแ แฉแแฌแแ แแ แแแแแแแแ แ แกแขแแขแฃแกแ. แแฅ. แคแแฎแแแ แแแ แแแแ แแแแก แแแแ, แ แแ แแ แแชแแกแ แแ แแ แแก แแงแแกแแแ แ, แแก แแฅแแแแ แฎแแแแ แซแแแแ แแ แแแแฆแแแแ. แแแแแแแแ แกแแแแ แแฃแแแ, แ แแ แแแแแแก แกแฃแ แแแก, แ แแ แแแแแแฌแแแแ แแแแแแแ, แแแแฆแแแแ แแ แแแแแขแแแ แแแ แ แแคแแฅแขแแ แแ แแแแก แแ แแก.
แ แแคแแฅแขแแ แแ แแแ แแแ แขแแแแ:
- แญแแแ.
- แซแแแแก.
- แแแแแฅแกแ.
- IaC แขแแกแขแ.
- แแแแแแแ แแ
แแ แฉแแแ แแแแแแ แแแ แแแแก แแแแแ, แกแแแแ แแ แแแแแฆแฌแแแ แแแแแจแแฃแ แแแแแแก.
แจแแกแแซแแแ แงแแแแแคแ แแก แแแฃแงแแแแแแแแ แแแฌแงแแแ แจแแฃแซแแแแแแ แแงแแก, แแแแขแแ แฉแแแแ แแแ แแแแ แแแแชแแแ แแงแ แแแแขแแแแแ แแ แกแแแขแแฅแกแแก แจแแแแฌแแแแแ แแแฌแงแแแ.
แแฆแ #181: Green Build Master
Linting แแ แแก แแแขแแ แ แแแ แแแแ แแแแแฏแ Green Build Master-แแกแแแ. แแก แแแแฅแแแก แแ แแคแแ แก แแแแ แฆแแแแก, แแแแ แแ แกแแจแฃแแแแแแก แแแแชแแแ แแแแแ แแแ แแ แแชแแกแแแ แแ แจแแฅแแแแ แแฌแแแแ แแแแแแแแแแ แฏแแแแแแกแจแ. แแแแ แแ แแก แแฃแแแจแ แฉแแแแแแแก แแแแแแฃแจแแแแแ:
- แฌแแแแแ แขแแกแขแแแ แชแฃแแแ.
- แแแแแแ, แ แแ แ แแฆแแช แแแแแแแกแฌแแ แ แแ แแแแแแ แแฃแแแ แแแแแแแแ แแแแ แชแแขแ แฃแแแแแกแ แแแแ แ แจแแแแแแ แแงแ.
แแฆแ #193: แแแฅแแแแ แแ แแแฃแ แขแแกแขแแแแแแ
แแแแแก แแแกแขแแ แจแ แแแฎแแแแ แแก แแ แแชแแกแแก แจแแแแแแแก แจแแแแแ, แจแแแแซแแแแ แแแแฌแงแแ แแขแแแแแ แแแ แแแฃแแฏแแแแกแแแแก แแ แแชแแกแ - แจแแชแแแแแ แแแฅแแแ แแแจแแแแแก แ แแแแแแ, แจแแแแซแแแแ แแแแก แแแแแแแแแช แแ แฃแซแแฃแ แแแแก แแแ แแจแ. แแฅแแแ แฃแแแ แแแกแแแแแ, แ แแแแ แแแแแแงแแแแ แ แแแแแ แแ แ แแแแ แแฃแจแแแแแ แแกแแแ.
แแฆแ #211: แแ แแแฃแแแแแ แแแขแแแ แแชแแแก แขแแกแขแแแแแแ
แ แแแแกแแช แ แแแแแแก แฃแแแขแแกแแแ แแแคแแ แฃแแแ แแ แแแฃแแ แขแแกแขแแแแ แแ แงแแแแแคแแ แ แแแคแแ แฃแแแ, แจแแแแซแแแแ แแแแแฎแแแแแ แแแขแแแ แแชแแแก แขแแกแขแแแแก แแแแแขแแแแแ. แแแแ. แแแคแ แแกแขแ แฃแฅแขแฃแ แแจแ แแ แช แแ แแ แแแฃแ แแก แขแแกแขแแ แแแ, แแ แแแแ แแแแ แแแแแแแแชแแ, แแแแแแแแแ, แกแ แฃแแ แแแกแขแแแชแแแก แแแแคแแแฃแ แแชแแ.
แฏแแแแแแแแแก แแแแแงแแแแแแ, แฉแแแ แจแแแฅแแแแแ แแ แแแแแ แแขแแแ, แ แแแแแแแช แแแ แแแแแฃแ แแ แแแแแกแแแแแแ แ แแแแแก/แกแแแแแแจแ แฌแแแแแแก, แจแแแแแ แแ แแแฃแแแแแก แขแแกแขแแแ แแแแขแแแแแ แแแจแ แแ แแแแแก แแแขแแแ แแชแแแก แขแแกแขแแแ.
Jenkins + Docker + Ansible = แขแแกแขแแแ
- แจแแแแแฌแแแ แ แแแ แแ แจแแฅแแแแแ แแจแแแแแแแแแก แแขแแแแแ.
- แแแ แแแแแฃแ แแ แแแฃแจแแแ lint playbook แแขแแแแแ.
- แแแฃแจแแแ แแแแขแแก แ แแแแก แแขแแแแแ แแแ แแแแแฃแ แแ.
- แกแแแขแแฅแกแแก แจแแแแฌแแแแแก แ แแแแก แแขแแแแแแก แแแ แแแแแฃแ แแ แแแจแแแแ.
- แแแ แแแแแฃแ แแ แแแฃแจแแแ แขแแกแขแแก แ แแแแก แแขแแแแแ.
- แแแแขแแก แ แแแ.
- แจแแแแแฌแแแ แแแแแแแแแแฃแแแแ แกแฎแแ แ แแแแแแ.
- แจแแแแแฌแแแ แกแแแขแแฅแกแ.
- แจแแฅแแแแแ แแแแแ แแก แแแแแแแแ
- แแแฃแจแแแ molecule/default/playbook.yml.
- แจแแแแแฌแแแ แแแแแขแแแชแแ.
- แฉแแแขแแ แแ แแแขแแแ แแชแแแก แขแแกแขแแแ
- แคแแ แ
แแฆแ #271: แแแขแแแฃแกแ แคแแฅแขแแ แ
แแแแแแแ แ แแคแแฅแขแแ แแ แแแแก แแฌแแ แแแแแแ แแ -แกแแแ แแแชแแแแ แแชแแ แ แฏแแฃแคแ. แแแ แแแแแฎแแแแก แแแแ แแแกแขแแ แจแ. แแ แแแ แแแแแแแแแแแจแ, แแฃแแแแ แจแแแแฃแจแแแ แชแแแแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แฃแแแ แแแฌแแ แแ แแแแ แแ แแแแแก แแแแแฎแแแแ, แฎแแแ แจแแฃแฌแงแ แชแแแแแก แแแแ แชแแแแแแก แแแคแ แแกแขแ แฃแฅแขแฃแ แแกแ แแ แแแกแ แแฃแจแแแแแก แจแแกแแฎแแ. แแฅ แแแแแแ แ แแก แแงแ, แ แแ แ แแชแแแแแแขแแแ แกแแแแแแแ, แแ แแคแแแแก แแแฎแแแแแ, แ.แ. แแแ แแแแฃแแ แแแแแแแแแ, แแฅแแแ แแฎแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแฎแแ แแแฌแแแแ.
แแ แแฅ แแแแคแแ แขแฃแแ แฃแแแ แแงแแก. แแแกแแฎแแ แฎแแแแแแ แแแแแฎแแแแแก แแแแแแแแ, แแแแก แแแแแฎแแ, แแฃ แ แ แแแแแแแแแก แคแแ แแแแแจแ แจแแกแ แฃแแแ แแ แแแกแแฃแกแแแแแก แแกแขแแ แแ. แฉแแแ แแแแฅแแก แแแขแแแ แแ แแแฃแแ jenkins + bitbucket + jira.
แแแแ แแ, แ แแแแ แช แแกแแแ, แแแแแฎแแแแ แแ แแ แแก แแแแแชแแ; แ แแขแแแฆแแช, แฉแแแ แจแแแแแแ แแแแแแ แแแแจแ, แ แแแแช แแแแแชแ แคแแแ แขแแกแขแแแ:
- get_url:
url: "{{ actk_certs }}/{{ item.1 }}"
dest: "{{ actk_src_tmp }}/"
username: "{{ actk_mvn_user }}"
password: "{{ actk_mvn_pass }}"
with_subelements:
- "{{ actk_cert_list }}"
- "{{ actk_certs }}"
delegate_to: localhost
- copy:
src: "{{ actk_src_tmp }}/{{ item.1 }}"
dest: "{{ actk_dst_tmp }}"
with_subelements:
- "{{ actk_cert_list }}"
- "{{ actk_certs }}"
แแแ แ แแแแกแฌแแ แแก, แแแแ แแ แแแแแฅแ แแแ แฉแ.
get_url:
url: "{{ actk_certs }}/{{ actk_item }}"
dest: "{{ actk_src_tmp }}/{{ actk_item }}"
username: "{{ actk_mvn_user }}"
password: "{{ actk_mvn_pass }}"
loop_control:
loop_var: actk_item
with_items: "{{ actk_cert_list }}"
delegate_to: localhost
- copy:
src: "{{ actk_src_tmp }}/{{ actk_item }}"
dest: "{{ actk_dst_tmp }}"
loop_control:
loop_var: actk_item
with_items: "{{ actk_cert_list }}"
แแฆแ #311: แขแแกแขแแแแก แแแฉแฅแแ แแแ
แแ แแแ แแแแแแแแแแแจแ, แแแขแ แขแแกแขแแแ แแงแ, แจแแแแแแแ แฃแคแ แ แแแแ แแฃแจแแแแแ, แฃแแ แแก แจแแแแฎแแแแแจแ แแ แ แกแแแแแแแ. แแ แ-แแ แ แ แแขแ แแแ แแงแ แคแ แแแ, แ แแแแ แแชแแ "แแแ แแแ, แ แแ แแ แแก แขแแกแขแแแ, แแแแ แแ แแกแแแ แแแแแ". แจแแแแแแ, แฉแแแ แแแแแขแแแแ แแแขแแแ แแชแแแก แขแแกแขแแแ แแแ แขแฃแแแฃแ แแแแฅแแแแแแ แแ แแแแแ แแแ แแกแแแ Docker-แแกแแแแก, แ แแ แแก แฃแคแ แ แกแฌแ แแคแ แงแแคแแแแงแ. แฉแแแ แแกแแแ แจแแแชแแแแแ testinfra แชแแแกแแฎแ แแแแแแแฌแแแแแ, แแแแแงแแแแแฃแแ แฎแแแกแแฌแงแแแแแก แ แแแแแแแแแก แจแแกแแแชแแ แแแแแ.
แแแแชแ แแ แ แแ แแแฅแแแ, แแงแ แแแแแแแก แแแแแ แ แแแ:
- แแแแแ แแ แแแแแ แแแ.
- แฌแแจแแแแ แ แแแแแแก แขแแกแขแแ แแแ, แ แแแแแแช แแฃแแแแ แแแฃแแแ แแแแแแแแแแฃแแแแแแแก แแแแ.
- แแแแแ แแแ แแแแแแแก แ แแแแแแแแ.
- แกแแขแแกแขแ แแแจแแแแแก แจแแแแแแ.
- แแแแขแแก แฃแแแ แ แงแแแแ แแแแแแฃแ แแ แแ แแ แแ แซแแแแแแ.
แจแแแแแแ, Pipeline on jenkins แแกแแแ แแแแ แแแแแแ
- แจแแฅแแแแแ แแจแแแแแแแแแก แแขแแแแแ.
- แแแแขแ แงแแแแ แแแ แแแแแฃแ แแ.
- แแแ แแแแแฃแ แแ แแแฃแจแแแ แขแแกแขแแก แ แแแแก แแขแแแแแ.
- แแแกแ แฃแแแแ.
แแแแแแแแแแแแก
แแแแ แแแแ แแแแแแแฃแ แชแแแแแแแก
Ansible แแงแแแแแก แแแแแแแฃแ แชแแแแแแแก, แคแแ แแแจแ แแ แแก แแแฌแแแแแ แแแ แแแแแกแแแแแ
แแแแ แแแแแแแแก แแแแแงแแแ. แแแแแ แแแฅแแแแแก role_a
ะธ role_b
# cat role_a/defaults/main.yml
---
msg: a
# cat role_a/tasks/main.yml
---
- debug:
msg: role_a={{ msg }}
# cat role_b/defaults/main.yml
---
msg: b
# cat role_b/tasks/main.yml
---
- set_fact:
msg: b
- debug:
msg: role_b={{ msg }}
- hosts: localhost
vars:
msg: hello
roles:
- role: role_a
- role: role_b
tasks:
- debug:
msg: play={{msg}}
แกแแกแแชแแแ แแก แแ แแก, แ แแ แกแแแแแแจแ แฌแแแแแแแก แจแแแแแ แแแแแแแแแแฃแแ แแฅแแแแ แแแแแ, แ แแช แงแแแแแแแแก แแ แแ แแก แแจแแแ แ, แแแแแแแแแ, แ แแแแแแก แฉแแแแแแแแก แแแแแแแแแแ แแแแแ. แกแแแฌแฃแฎแแ แแ, แแก แแ แแก Ansible-แแก แแฃแแแแ แแ แกแแฃแแแแแกแ, แ แแช แจแแแซแแแแ แแแแแแแแก, แแ แแก แ แแแแ แกแแฎแแก แจแแแแแฎแแแแแก แแแแแงแแแแแ, แแแแแแแแแ, แ แแแแก แคแแ แแแแแจแ, แแแแแแงแแแแ แแฎแแแแ แแ แ แแแจแ แแฆแฌแแ แแแ แชแแแแแ.
BAD: แแแแแแงแแแแ แแแแแแแฃแ แ แชแแแแแ.
# cat roles/some_role/tasks/main.yml
---
debug:
var: java_home
GOOD: V defaults
แแแแกแแแฆแแ แแ แกแแญแแ แ แชแแแแแแแ แแ แแแแแแแแแแแ แแแแแแงแแแแ แแฎแแแแ แแกแแแ.
# cat roles/some_role/defaults/main.yml
---
r__java_home:
"{{ java_home | default('/path') }}"
# cat roles/some_role/tasks/main.yml
---
debug:
var: r__java_home
แแ แแคแแฅแกแ แ แแแแก แชแแแแแแแ
BAD: แแแแแแงแแแแ แแแแแแแฃแ แ แชแแแแแ.
# cat roles/some_role/defaults/main.yml
---
db_port: 5432
GOOD: แชแแแแแแแแก แ แแแแแจแ แแแแแแงแแแแ แชแแแแแแแ แ แแแแก แกแแฎแแแแแ แแ แแคแแฅแกแแ; แแก, แแแแแแขแแ แแก แแแแแแแแแ แแแแ, แแแแแแแแแแแก แแแแก แแแแแแแก, แแฃ แ แ แฎแแแแ.
# cat roles/some_role/defaults/main.yml
---
some_role__db_port: 5432
แแแแแแงแแแแ แแแ แงแฃแแแก แแแแขแ แแแแก แชแแแแแ
BAD: แแแแแแงแแแแ แกแขแแแแแ แขแฃแแ แชแแแแแ แแแ แงแฃแแแแจแ item
, แแฃ แแก แแแแแแแแ/แกแแแแแแจแ แฌแแแแ แกแแแแ แจแแแแก, แแแแ แจแแแซแแแแ แแแแแแฌแแแแก แแแฃแแแแแแแ แฅแชแแแ
---
- hosts: localhost
tasks:
- debug:
msg: "{{ item }}"
loop:
- item1
- item2
GOOD: แฎแแแแฎแแ แแแแกแแแฆแแ แแ แชแแแแแ แแแ แงแฃแแจแ แแแจแแแแแแ loop_var
.
---
- hosts: localhost
tasks:
- debug:
msg: "{{ item_name }}"
loop:
- item1
- item2
loop_control:
loop_var: item_name
แจแแแแแฌแแแ แจแแงแแแแแก แชแแแแแแแ
แฉแแแ แจแแแแแแฎแแแแ แชแแแแแแก แแ แแคแแฅแกแแแแก แแแแแงแแแแแแแ; แแแแแแขแ แแ แแฅแแแแแแ แแแแก แจแแแแฌแแแแ, แ แแ แแกแแแ แแแแกแแแฆแแ แฃแแแ แแกแ, แ แแแแ แช แฉแแแ แแแแแแแแแ แแ, แแแแแแแแแ, แแ แแงแ แแแแแคแแ แฃแแ แชแแ แแแแ แแแแจแแแแแแแแ.
GOOD: แจแแแแแฌแแแ แชแแแแแแแ.
- name: "Verify that required string variables are defined"
assert:
that: ahs_var is defined and ahs_var | length > 0 and ahs_var != None
fail_msg: "{{ ahs_var }} needs to be set for the role to work "
success_msg: "Required variables {{ ahs_var }} is defined"
loop_control:
loop_var: ahs_var
with_items:
- ahs_item1
- ahs_item2
- ahs_item3
แแแแ แแแแ แฐแแจแแก แแแฅแกแแแแแแแก, แแแแแแงแแแแ แแ แขแงแแแ แกแขแ แฃแฅแขแฃแ แ
แแฃ แ แแแ แแแแก แฐแแจแแก/แแแฅแกแแแแแก แแแก แแ แ-แแ แ แแแ แแแแขแ แจแ, แแแจแแ แแฃ แแแแแแ แจแแแชแแแแแ แแ แ-แแ แแ แจแแแแแแแแ แแแ แแแแขแ แ, แแแแแญแแ แแแแ แแแแแ แฐแแจแแก/แแแฅแกแแแแแแก แแแแแคแแ แแ, แ แแช แแแแ แแแก แแแแคแแแฃแ แแชแแแก แกแแ แแฃแแแก.
BAD: แแแแแแงแแแแ แฐแแจแ/แแแฅแกแแแแแ.
---
user:
name: admin
group: admin
GOOD: แแแแแแงแแแแ แแ แขแงแแแ แชแแแแแ แกแขแ แฃแฅแขแฃแ แ.
---
user_name: admin
user_group: "{{ user_name }}"
แจแแฅแแแแแ แฃแแแแแ แกแแแแแแจแ แฌแแแแแแ แแ แ แแแแแ
แ แแแแแ แแ แกแแแแแแจแ แฌแแแแแแ แฃแซแแฃแ แ แฃแแแ แแงแแก, แ แแแแแ แแแชแแ แแแก แแแแคแแแฃแ แแชแแแก แแ แแคแขแก แแ แ แแฆแแชแแก แแแขแแฎแแแก แจแแจแก. แแแแ แแ แแฃ แแงแแแแแ แแแแแแฃแแแก, แแแจแแ แแก แแแแฃแแแกแฎแแแแ แฅแชแแแแ.
แแแแ แแแแ แแ แซแแแแแแก แแแ แกแแก แแแแฃแแแแแก แแแแแงแแแแแแก
Shell แแแแฃแแแก แแแแแงแแแแแ แแฌแแแแก แแแแแ แแขแแฃแแ แแฆแฌแแ แแก แแแ แแแแแแแก, แแแชแแแแ แแแแแแ แแชแแฃแแแกแ, แ แแแแแแช แแ แแก Ansible-แแก แแแ แแแ.
แจแแแแแฌแแแ แแฅแแแแ แ แแแแแ แแแแแแฃแแแก แกแแจแฃแแแแแแ
แแแแแแฃแแ แซแแแแแ แแแฅแแแแ แ แแ แแ แแก, แแแแแ แจแแแฎแแแแ แ แแแแแแแแ แกแชแแแแ แก.
แแแแแแฃแแ แแ แแแแแ แจแแแแฎแแแแ
ะ molecule.yml
แแแแงแแคแแแแแแจแ platforms
แแฅแแแ แจแแแแซแแแแ แแฆแฌแแ แแ แแ แแแแแ แฐแแกแขแ, แ แแแแแแช แจแแแแซแแแแ แแแแแแแแกแแ.
---
driver:
name: docker
platforms:
- name: postgresql-instance
hostname: postgresql-instance
image: registry.example.com/postgres10:latest
pre_build_image: true
override_command: false
network_mode: host
- name: app-instance
hostname: app-instance
pre_build_image: true
image: registry.example.com/docker_centos_ansible_tests
network_mode: host
แจแแกแแแแแแกแแ, แแก แแแกแแแแซแแแแ แจแแแซแแแแ แแงแแก converge.yml
แแแแแงแแแแแ:
---
- name: Converge all
hosts: all
vars:
ansible_user: root
roles:
- role: some_role
- name: Converge db
hosts: db-instance
roles:
- role: some_db_role
- name: Converge app
hosts: app-instance
roles:
- role: some_app_role
แแแกแฃแฎแแกแแแแแแแ แแแแแแแกแขแฃแ แแแแแ
แแแแแแฃแแแจแ แจแแกแแซแแแแแแแ แแแแแแงแแแแ ansible แแแแก แจแแกแแแแฌแแแแแแ, แ แแ แแแกแขแแแชแแ แกแฌแแ แแ แแ แแก แแแแคแแแฃแ แแ แแแฃแแ, แฃแคแ แ แแแขแแช, แแก แแงแ แแแแฃแแแกแฎแแแแ แแ-3 แแแแแจแแแแแก แจแแแแแ. แแก แแ แแ แแก แแกแแแ แแแฅแแแแ, แ แแแแ แช testinfra/inspec, แแแแ แแ แจแแแแแซแแแ แจแแแแแแฌแแแ, แ แแ แคแแแแแก แจแแแแแ แกแ แแแแฎแแแแ แฉแแแแก แแแแแแแแแแก:
---
- name: Verify
hosts: all
tasks:
- name: copy config
copy:
src: expected_standalone.conf
dest: /root/wildfly/bin/standalone.conf
mode: "0644"
owner: root
group: root
register: config_copy_result
- name: Certify that standalone.conf changed
assert:
that: not config_copy_result.changed
แแ แแแแแแแแกแแ แกแแ แแแกแ, แแแแแแแแ แแแก แฎแแแแแกแแฌแแแแแแแแก แแ แแแแแแแแ แแแแแแแก แขแแกแขแ:
---
- name: Verify
hosts: solr
tasks:
- command: /blah/solr/bin/solr start -s /solr_home -p 8983 -force
- uri:
url: http://127.0.0.1:8983/solr
method: GET
status_code: 200
register: uri_result
until: uri_result is not failed
retries: 12
delay: 10
- name: Post documents to solr
command: /blah/solr/bin/post -c master /exampledocs/books.csv
แฉแแแแ แ แแฃแแ แแแแแแ แแแแฃแแแแกแ แแ แแแแแแแขแแแจแ
Ansible แแฎแแ แก แฃแญแแ แก แแแแแแ แแชแแฃแ แแแแแแแแก, แแกแ แ แแ, แ แแแแกแแช แแฅแแแ แแแแแแแ แแแแแก แแแแจแขแแแแแก, แแแแแชแแแแ แขแ แแแกแคแแ แแแชแแแก, แญแฃแ แแแก แแแแฃแแแแก, แแแแ แ แแฃแแแแแ แฌแแกแแแแแฎแแ. แแแแก แกแแแ แซแแแแแแแ แแ แแแกแแแแแแ แแแกแแแแแแ, แแแแแแขแ แแ แแฅแแแแ แแ แกแแ แแฃแแแกแแแ แแ แซแแแ แกแแแฃแแแ แ แแแแฃแแแแแก แจแแฅแแแแ.
แจแแแฏแแแแ แ แฉแแแแแ แแ แฎแ แแแแแ
- แแแแ แแแแ แแแแแแแฃแ แชแแแแแแแก.
- แแ แแคแแฅแกแ แ แแแแก แชแแแแแแแ.
- แแแแแแงแแแแ แแแ แงแฃแแแก แแแแขแ แแแแก แชแแแแแ.
- แจแแแแแฌแแแ แจแแงแแแแแก แชแแแแแแแ.
- แแแแ แแแแ แฐแแจแแก แแแฅแกแแแแแแแก, แแแแแแงแแแแ แแ แขแงแแแ แกแขแ แฃแฅแขแฃแ แ.
- แจแแฅแแแแแ แฃแแแแแ แกแแแแแแจแ แฌแแแแแแ แแ แ แแแแแ.
- แแแแ แแแแ แแ แซแแแแแแก แแแ แกแแก แแแแฃแแแแแก แแแแแงแแแแแแก.
- แจแแแแแฌแแแ แแฅแแแแ แ แแแแแ แแแแแแฃแแแก แกแแจแฃแแแแแแ.
- แฉแแแแ แ แแฃแแ แแแแแแ แแแแฃแแแแกแ แแ แแแแแแแขแแแจแ.
แแแกแแแแ
แแฅแแแ แแ แจแแแแซแแแแ แฃแแ แแแแ แฌแแฎแแแแแ แแ แแแแแแฎแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แ แแ แแแฅแขแแ, แแแจแแแแช แแ, แแฃ แแแฅแแ IaC. แแก แแ แแก แฎแแแแ แซแแแแ แแ แแชแแกแ, แ แแแแแแช แแแแแฎแแแก แแแแแแแแแแก, แแ แแกแ แแ แชแแแแแก.
แแแฃแแแแ
- แกแแแแแแแ
แ แแแแ แแแแแกแแแฏแแ Ansible แแ แแ แแแแแแแแแ - แแแแแ
แ แแแแ แแแแแกแแแฏแแ Ansible แแ แแ แแแแแแแแแ แ แ แแแกแฌแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแแแก 200 แฎแแแแก แขแแกแขแแ แแแแแแ แแแกแฃแฎแ: 120 VM แแแแคแแแฃแ แแชแแแก แแแแ แแชแแ Coreos-แแแ Centos-แจแ 18 แแแแจแ แ แแแแ แแแแขแแฎแแ แแแแแกแแแแแแแ แฎแแแฏแแฎแแแแ แแฅแแแแ แแแแแฌแแแแแแก แขแแกแขแแ แแแแกแแก แแแแแขแแกแขแแ, แจแแแแซแแแแ แแฃ แแ แ YML แแ แแแ แแแแกแขแแแ Ansible-แแก แขแแกแขแแ แแแแแ? แแแกแแแชแแ แ IaC แขแแกแขแแ แแแแก แกแขแแขแแแแแก, แแแแแกแแแแแแกแ แแ แแแฃแแแแแก แกแแ แฏแแแ แ แแแกแขแ แแแแแแกแฃแ แ แแแ แกแแ
UPD1 2020.05.01 20:30 โ แกแแแแแแจแ แฌแแแแแแแก แแแ แแแแแแ แแ แแคแแแแ แแแแกแแแแก แจแแแแซแแแแ แแแแแแงแแแแ callback_whitelist = profile_tasks
แแแแก แแแแแแ, แแฃ แ แ แแฃแจแแแแก แแฃแกแขแแ แแแแ แฎแแแก แแแแแแแแแแแจแ. แจแแแแแ แฉแแแ แแแแแแแแ แ
UPD2 2020.05.03 16:34 -
แฌแงแแ แ: www.habr.com