ืื ืืชืืืื
ืืื ืื-commit ืืฉื ื, ืื ืงืื ืืืคื ืืืืจืฉืช, ืื ืจืขืืื ืืช ืจืืฉืื ืืื ืืชืืืืื ืืกืืืช ืืืืฆืืืืช ืืงืฉื. ืื ืื ืืื ืืื ืจืข, ืื ื ืชืื ืฉืงืฉื ืืืชืืืื ืืืชื ืืฆืจืื ืืืืืช ืืืชื. ืืืง ืืชืืืื ืื ืืื ืขืืืื ืืืืฉ. Refactoring ืชืฉืชืืช ืืงืื. ืฉืืชืืื ืืกืืคืืจ ืขื ืืื ืืืืฉ ืืช ืื ืกืืื ืืขืื ืฉื ื ืืื ืืืฉืชืืข.
ืืืืืช ืืืืจืฉืช
ืืื ืืก' 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 ืฉืืืงื ืืืืืฉื ืืชืืืื ืืื ื ืขืืื ืขืื ืืืจืืฉืืช ืืืฉืชืืฉืื/ืขืกืงืื/ืฆืืืชืื ืืืจืื, ืืืืื ืืืืฆืืข ืฉืื ืืืื ืืชืฉืชืืช ืืคืกืืง ืืืืืช ืืงืืื. ืืจืืข ืื ืืืืขื ืืืื ื ืฉืืืืข ืืืื ืืขืฉืืช ืืขืฉื.
Refactoring ืฉื IaC
ืืื ืืก' 139: ืืื ืืชื ืืืืช ืฆืจืื ืจืืคืงืืืจ?
ืืคื ื ืฉืืชื ืืืืจ ืืืืฉ, ืขืืื ืืขื ืืช ืขื ืืกืคืจ ืฉืืืืช ืืฉืืืืช:
- ืืื ืืชื ืฆืจืื ืืช ืื ืื?
- ืืฉ ืื ืืื?
- ืืื ืืืข ืืกืคืืง?
ืื ืืชื ืื ืืืืข ืืื ืืขื ืืช ืขื ืืฉืืืืช, ืืจืืคืงืืืจืื ื ืืกืชืืื ืขืื ืืคื ื ืฉืืื ืืชืืื, ืื ืฉืืื ืขืืื ืจืง ืืืืืืจ. ืื ืืื ื ืืกืืื(
ืืื ืืก' 149: ืืื ืช ืืฉืืืืจ
ืืืืจ ืืจืืฉืื ืืื ืืืืื. ืชืืืื ืื ื ืขืฉื. ืืฉื ืื, ืื ื ืืชืงืฉืจืื, ืืืฆืืื ืืืืจืื ืืขืืืชืืื ืืืืฆืืื ืืจืืื ืืคืชืืจ ืืืชื. ืื ื ืจืืฉืืื ืืช ืืืืฉืืื ืืืชืงืืืื ืืืืฉืื, ืืืฉื ืืืืจ ืืืคืืฉ, ืื ืฉืืืฉืจ ืขืืื ืืฉืืื "ืื ืขืืืฃ?" ืื "ืื ื ืืื?" ืื ืืืืื ื ืืช ืืืจื. ืืืงืจื ืฉืื ื, ืืืงื ื ืืจืขืืื ืืืคืจืื ืืืฉืืื: ืื ื ืืคืจืงืื ืืช ืืชืฉืชืืช ืืืชืืืืช ืงืื ืืช/ืืื ืื. ืืืฉื ืื ืืืคืฉืจืช ืืงืืช ืืืง ืืืืืืช ืฉื ืชืฉืชืืช, ืืืืื ืื ืืื ืขืืฉื, ืืืกืืช ืืืชื ืืืืืงืืช ืืืฉื ืืช ืืืชื ืืืื ืืืฉืืฉ ืืฉืืืจ ืืืจ.
ืืกืชืืจ ืฉืืืืงืืช ืชืฉืชืืช ืืืคืืืช ืืืื ืืืกืื ืืืื ืจืืื ืืืืืืจ ืืช ืคืืจืืืืช ืืืืงืืช ืืชืฉืชืืช. ืืืืืง ืืืชื ืจืขืืื ืฉื ืืฆื ืืคืืชืื, ืืื ืืชืฉืชืืช: ืื ืื ื ืขืืืจืื ืืืืืงืืช ืืืืจืืช ืืืืืช ืฉืืืืงืืช ืืืจืื ืคืฉืืืื, ืืื ืืืื, ืืืืืงืืช ืืงืจืืช ืื ืืื ืืื ืฉืคืืจืกืืช ืืช ืื ืืชืฉืชืืช.
ื ืืกืืื ืืช ืืืืงื ืืคืฉืจืืื
ืืคื ื ืฉื ืื ืืชืืจ ืืืฆื ืืืกืื ื ืืืื ื Ansible ืืคืจืืืงื, ืืชืืจ ืืช ืื ืืกืืื ืืช ืืืืืฉืืช ืฉืืืืชื ืื ืืืืืื ืืช ืืืฉืชืืฉ ืืื ืงืืื ืืื ืขื ืื ืช ืืืืื ืืช ืืืงืฉืจ ืฉื ืืืืืืืช ืฉืืชืงืืื.
ืืื ืืก' -997: ืืชื SDS
ืืคืขื ืืจืืฉืื ื ืฉืืืงืชื ืืช Ansible ืืืืชื ืืคืจืืืงื ืืคืืชืื SDS (Software Defined Storage). ืืฉ ืืืืจ ื ืคืจื ืื ืืฉื ืื
ืืื ืืก' -701: ืืืื ืื ืกืืื ืืืืื
ืืคืืชืื ืฉื ืจืขืืื ืืืืืงืืช ืฉื Ansible ืืื ืฉืืืืฉ ืืืืื ืืืื ืื, ืืืืืจ test kitchen / kitchen-ci ื-inspect. ืืืืืจื ื ืงืืขื ืขื ืืื ืืืจืช ืจืืื (ืืคืจืืื ื ืืกืคืื, ืจืื ืืืืจ ืขื Habrรฉ:
ืืืืคื ืืืื, ืืคืชืจืื ืขืื, ืืื ืืื ืงืฆืช ืืฉืงืขืื ืืืื ืืืจืืื ืืืช. ืืืฉืจ ืืกืคืจ ืืื ืฉืื ืฉื ืืืงื ืืืืื ื-13 ืชืคืงืืืื ืืกืืกืืื ื-2 ืชืคืงืืื ืืื ืืฉืืืื ืชืคืงืืืื ืงืื ืื ืืืชืจ, ืื ืคืชืืื ืืืืืงืืช ืืืื ืืจืืฅ ืืืฉื 70 ืืงืืช, ืฉืื ืืืขื ืคื 2 ืืืชืจ. ืืื ืงืฉื ืืืืจ ืขื ืฉืืืืช XP (ืชืื ืืช ืงืืฆืื ืืืช) ืื... ืืฃ ืืื ืื ืจืืฆื ืืืืืช 70 ืืงืืช. ืื ืืืืชื ืืกืืื ืืฉืื ืื ืืืืฉื
ืืื ืืก' -601: Ansible ืืืืืงืืื
ืืืืื ื ืจืขืืื ืืช, ืื ืืืื ื-testkitchen, ืจืง ืฉืืขืืจื ื ืืช ืืืืงืช ืืชืคืงืืืื ื-docker ืืฉืื ืื ื ืืช ืืขืจืืื. ืืชืืฆืื ืืื, ืืืื ืืฆืืืฆื ืืืฆืืืืช ืฉื 20-25 ืืงืืช ืขืืืจ 7 ืชืคืงืืืื.
ืขื ืืื ืืืืืช ืืกืคืจ ืืชืคืงืืืื ืฉื ืืืงื ื-17 ืืืฆืืช 45 ืชืคืงืืืื, ืืจืฆื ื ืืช ืื ืชืื 28 ืืงืืช ืขื 2 ืขืืื ื'ื ืงืื ืก.
ืืื ืืก' 167: ืืืกืคืช ืืืื ื Ansible ืืคืจืืืงื
ืกืืืจ ืืื ืื ืฉืื ื ืืชื ืืืื ืืืฆืข ืืช ืืฉืืืช ืืืืจื ืืืืืจืืช. ืืืฉืืื ืฆืจืืื ืืืืืช ื ืืชื ืช ืืืืืื ืืื ืฉืชืืืื ืืฉืืืจ ืืืชื ืืืชืืืืช ืงืื ืืช ืืืืืื ืืช ืืคืื ืืืง ืืืจ ืืืง ืขื ืืคืืช. ืืืืืช ืืืืืช ืืื ื ืืื ืืชื ืืชืงืื ืืืืืื ืื ืืื, ืืื ืขืื ืฆืจืื ืืืืช.
ืืืืคื ืืืื, ืื ืืฉื ื ืืื ืื ืืชืืฆืข, ืืคืฉืจ ืืืชืื ืขื ืคืืกืช ื ืืืจ, ืืคืฉืจ ืืฉืื ืืืืงืืช ืขื ืืืจืื, ืืคืฉืจ ืืืฆืืจ ืืฉืืืืช ืื'ืืจื, ืื ืืคืชืื ืืืื ืืืงืก ืืืจืฉืื ืืช ืืกืืืืก ืื ืืืื ืฉื. ืืจืืืืื ืฆืืืืืช ืืืขืืืื ืฉืืชืืืื ืืื ื ืืืืื, ืืื ืืืื ืืจืื ืืืืืืข. ืืื ืื ืกืืืจ ืฉืืืฉืื ืจืืฆื ืฉืชืฉืจืืฃ ืืช ืืจืขืืื ืืช, ืชืชืขืืืฃ ืืชืืื ืืืื ืืืืื ืืขืืืื ืืืืฉ.
ืืฉืืืืจ ืืื ืคืฉืื:
- ืืืืื.
- ืืืฉืื.
- ืืงืืื
- ืืืื IaC.
- ืืืืืจ ืขื
ืืื ื ืืืืจืื ืขื ืื ืขื ืฉื ืืืข ืืืขื ืืืืืขื.
ืืืื ืื ื ืืชื ืืืชืืื ืืืืืง ืืื ืืื, ืื ืืืฉืืื ืืจืืฉืื ื ืฉืื ื ืืืืชื ืืืชืืื ืขื ืืื ืืืืืงืช ืืชืืืืจ.
ืืื ืืก' 181: Green Build Master
ืืื ืืื ืฆืขื ืจืืฉืื ืงืื ืืงืจืืช Green Build Master. ืื ืื ืืฉืืืจ ืืืขื ืฉืื ืืืจ, ืืื ืื ืืืคืฉืจ ืื ืื ืคืืช ืืืืื ืืชืืืืืื ืืืืฆืืจ ืื ืืื ืืจืืงื ืื'ื ืงืื ืก. ืืจืขืืื ืืื ืืคืชื ืืจืืืื ืืงืจื ืืฆืืืช:
- ืืืืงืืช ืืืืืืช ืื ืจืข.
- ืืืชื ืืชืงื ืืฉืื ืืืืงืืื ืืืคืื ืืช ืืงืื ืืงืฆืช ืืืชืจ ืืื ืืื ืฉืืื ืืคื ืืื.
ืืื ืืก' 193: ืืืื ืืืืืงืืช ืืืืื
ืืืืจ ืฉืื ืืช ืืช ืชืืืื ืงืืืช ืืงืื ืืืืกืืจ, ืืชื ืืืื ืืืชืืื ืืชืืืื ืฉื ืฉืืคืืจ ืฉืื ืืืจ ืฉืื - ืืืืคืช ืืื ืืชืคืงืืื ืืฉืงื, ืืชื ืืืื ืืคืืื ืืขืฉืืช ืืช ืื ืืื ืืืืคืืื ืฆืื. ืืชื ืฆืจืื ืืืืื ืืื ืืืืฉื ืชืคืงืืืื ืืืื ืื ืขืืืืื.
ืืื ืืก' 211: ืืืืืื ืืืืื ื ืืื ืืืจืฆืื
ืืืฉืจ ืจืื ืืชืคืงืืืื ืืืืกืื ืืืืื ื ืืืืื ืืืื ืืืืกื ืืื, ื ืืชื ืืขืืืจ ืืืืกืคืช ืืืื ื ืืื ืืืจืฆืื. ืึธืึตื. ืืืืงืช ืื ืืื ื ืืืช ืืชืฉืชืืช, ืืื ืฉืืืื ืฉืืื, ืืืฉื, ืชืฆืืจืช ืืืคืข ืืื.
ืืืืฆืขืืช ื'ื ืงืื ืก, ืืฆืจื ื ืฉืืืื ืจืืื ืฉืืืืจื ืชืคืงืืืื/ืกืคืจื ืืฉืืง ืืืงืืื, ืืืจ ืื ืืืืงืืช ืืืืืืช ืืืืืืื, ืืืืกืืฃ ืืืื ื ืืื ืืืจืฆืื.
Jenkins + Docker + Ansible = ืืืื ืื
- ืืืืง ืจืืคื ืืืฆืืจืช ืฉืืื ืื ืืื.
- ืืคืขื ืืช ืฉืืื ืกืคืจื ืืืื ืืืงืืื.
- ืืคืขื ืฉืืื ืชืคืงืืื ืืื ืืืงืืื.
- ืืคืขื ืืช ืฉืืื ืชืคืงืืื ืืืืงืช ืืชืืืืจ ืืืงืืื.
- ืืคืขื ืฉืืื ืชืคืงืืื ืืืื ืืืงืืื.
- ืชืคืงืื ืืื.
- ืืืืง ืชืืืช ืืชืคืงืืืื ืืืจืื.
- ืืืืง ืชืืืืจ.
- ืฆืืจ ืืืคืข docker
- ืืคืขื ืืช molecule/default/playbook.yml.
- ืืืืง ืืืืคืืื ืฆืื.
- ืืคืขื ืืืื ื ืืื ืืืจืฆืื
- ืกืืื
ืืื ืืก' 271: ืืืจื ืืืืืืืก
ืืชืืืื, ืืืฆืขื ืฉืืืืฅ ืืืืฉ ืขื ืืื ืงืืืฆื ืงืื ื ืฉื ืฉื ืืื ืื ืฉืืืฉื ืื ืฉืื. ืื ืืื ื ืืช ืืงืื ืืืืกืืจ. ืขื ืืืื, ืืฆืืืช ืคืืชื ืืืข ืืืฆื ืืืชืื ืงืื ืืกืงืืจืช ืงืื ืชืจืื ืืืคืฆืช ืืืืข ืขื ืืชืฉืชืืช ืืืืฆื ืืื ืคืืขืืช. ืืืืช ืืืืชืจืช ืืื ืืืืชื ืฉืืกืืงืจืื ื ืืืจื ืืื ืืื, ืืคื ืืื ืืื ืื, ืืืืืจ. ืืืืื ืืกืืืืช ืฉื ืกืืืจืืช ืชืืคืก ืืชืื ืคืืกืช ืชืฉืชืืช ืืืฉื.
ืืฆืจืื ืืืืืช ืืื ื ืื. ื ืื ืืขืฉืืช ืกืงืืจื, ืืจืืืช ืืืกืืจืช ืืืื ืืฉืืื ืืืฆืขื, ืืืืืกืืืจืื ืฉื ืืืืื ืื. ืฉืืืื ื ื'ื ืงืื ืก + ืืืืืืงื + ื'ืืจื.
ืืื ืืืื, ืกืงืืจื ืืื ืื ืชืจืืคืช ืคืื; ืืืืฉืื, ื ืื ืกื ื ืืงืื ืืืืกืืจ, ืฉืืจื ืื ื ืืืืื ื ืคืืืค:
- 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 ื-Ansible Verifier ืืื ืืืคืืืช ืืช ืืกืคืจ ืืืืื ืืฉืืืืฉ.
ืืืืคื ืงืคืื ื, ืืืืชื ืืขืจืืช ืฉื ืืืฆืขืื:
- ืขืืืจ ืื docker.
- ืืกืจ ืืช ืืืืงืช ืืชืคืงืืืื, ืืืืืคืืช ืขืงื ืชืืืช.
- ืืืืืื ืืช ืืกืคืจ ืืขืืืื.
- ืกืืจ ืจืืฆืช ืืืื.
- ืืืืืช ืืื ALL ืืงืืืืช ืขื ืคืงืืื ืืืช.
ืืชืืฆืื ืืื, ืื ืฆืื ืืจ ืขื ื'ื ืงืื ืก ืืื ืืืืื
- ืฆืืจ ืฉืืื ืื ืืื.
- ืืื ืืื ืืืงืืื.
- ืืคืขื ืฉืืื ืชืคืงืืื ืืืื ืืืงืืื.
- ืกืืื.
ืืงืืื ืฉืืืคืง
ืืืื ืข ืืืฉืชื ืื ืืืืืืืื
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 ืืืืืจ ืืืื ืืืืชืจ ืฉื ืืชื ืืขืฉืืช ืืื ืืืฉืชืืฉ ืืืกืืื ืืืฉืื, ืืืฉื, ืืชืื ืชืคืงืื, ืืฉืชืืฉ ืจืง ืืืฉืชื ื ืืืชืืืจ ืืชืคืงืื ืื.
ืจืข: ืืฉืชืืฉ ืืืฉืชื ื ืืืืืื.
# cat roles/some_role/tasks/main.yml
---
debug:
var: java_home
ืืื: ื 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
ืืฉืชื ื ืชืคืงืื ืงืืืืืช
ืจืข: ืืฉืชืืฉ ืืืฉืชื ื ืืืืืื.
# cat roles/some_role/defaults/main.yml
---
db_port: 5432
ืืื: ืืชืคืงืืืื ืืืฉืชื ืื, ืืฉืชืืฉ ืืืฉืชื ืื ืขื ืงืืืืืช ืฉื ืืชืคืงืื; ืื, ืขื ืืื ืืชืืื ื ืืช ืืืืื, ืืงื ืขื ืืืื ื ืื ืงืืจื.
# cat roles/some_role/defaults/main.yml
---
some_role__db_port: 5432
ืืฉืชืืฉ ืืืฉืชื ื ืืงืจืช ืืืืื
ืจืข: ืืฉืชืืฉ ืืืฉืชื ื ืกืื ืืจืื ืืืืืืืช item
, ืื ืืืฉืืื/ืกืคืจ ืืืคืขืื ืืื ื ืืื ืืืคืฉืื, ืืืืจ ืขืืื ืืืืืื ืืืชื ืืืืช ืืืชื ืฆืคืืื
---
- hosts: localhost
tasks:
- debug:
msg: "{{ item }}"
loop:
- item1
- item2
ืืื: ืืืืจ ืืืืฉ ืืฉืชื ื ืืืืืื via loop_var
.
---
- hosts: localhost
tasks:
- debug:
msg: "{{ item_name }}"
loop:
- item1
- item2
loop_control:
loop_var: item_name
ืืืืง ืืฉืชื ื ืงืื
ืืกืืื ื ืืืฉืชืืฉ ืืงืืืืืืช ืืฉืชื ืืช; ืื ืืืื ืืืืชืจ ืืืืืง ืฉืื ืืืืืจืืช ืืคื ืฉืื ื ืืฆืคืื, ืืืืืืื, ืืื ื ื ืืืงืืช ืขื ืืื ืขืจื ืจืืง
ืืื: ืืืืง ืืฉืชื ืื.
- 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
ืืืื ืข ืืืืืื ื ืืืืื, ืืฉืชืืฉ ืืืื ื ืฉืืื
ืื ืชืคืงืื ืืฆืคื ื-hash/ืืืืื ืืืื ืืืคืจืืืจืื ืฉืื, ืื ืื ื ืจืฆื ืืฉื ืืช ืืช ืืื ืืคืจืืืจื ืืืื, ื ืฆืืจื ืืขืงืืฃ ืืช ืื ื-hash/ืืืืื, ืื ืฉืืืืื ืืช ืืืจืืืืช ืืชืฆืืจื.
ืจืข: ืืฉืชืืฉ ื-hash/ืืืืื.
---
user:
name: admin
group: admin
ืืื: ืืฉืชืืฉ ืืืื ื ืืฉืชื ื ืฉืืื.
---
user_name: admin
user_group: "{{ user_name }}"
ืฆืืจ ืกืคืจื ืืฉืืง ืืชืคืงืืืื ืืกืจื ืขืืฆืื
ืชืคืงืืืื ืืกืคืจื ืืฉืืง ืืืืืื ืืืืืช ืืืืคืืื ืืืื, ืื ืืคืืืช ืกืืืคื ืฉื ืชืฆืืจื ืืคืื ืืฉืืืจ ืืฉืื. ืืื ืื ืืชื ืืฉืชืืฉ ืืืืืงืืื, ืื ืื ืืชื ืืืืช ืืจืืจืช ืืืืื.
ืืืื ืข ืืฉืืืืฉ ืืืืืืืื ืฉื ืืขืืคืช ืคืงืืื
ืฉืืืืฉ ืืืืืื ืืขืืคืช ืืืื ืืคืจืืืืืช ืชืืืืจ ืฆืืืื, ืืืงืื ืื ืืืฆืืจืชืืช, ืฉืืื ืืืืื ืฉื 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 ืฉืืจืืช ืฉื ืงืื ืชืฉืชืืช Ansible: ืืขืืจื ืฉื ืชืฆืืจืช 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