Otu esi emepụta ndebiri n'enwere ike ịmepụta nhazi na ọnụ ụzọ ejiri - Nkebi nke 7


N'ime akụkụ 7 nke usoro enwere ike, ị ga-amụta ka esi emepụta na iji ndebiri na ike ịmepụta nhazi ahaziri iche na ọnụ ọnụ ejirila. Tempting in Ansible bụ ụzọ dị mfe na enyi na enyi nke ịkwanye nhazi omenala n'ime ọnụ ụlọ ejiri na-arụ usoro dị iche iche na-eji obere edezi faịlụ playbook.

Iji nweta nghọta ka mma nke ihe ndebiri bụ, ka anyị tụlee onye njikwa IT na-edepụta ozi-e iji kpọọ ngalaba ya maka oriri mmanya. A na-ezigara onye ọ bụla n'ime ndị ahụ email ahụ, na-akpọkwa ha ka ha na ndị òtù ọlụlụ ha kpado.

Ahaziri email ahụ nke mere na ahụ nke email ahụ ka dị otu, mana ndị adreesị na aha ndị di na nwunye ha dị iche iche. Email ahụ na-aghọ template, ebe ndị nnata na ndị di na nwunye na-agbanwe agbanwe.

Nke ahụ bụ ihe atụ zuru oke. Enwere ike iji Jinja2 nke bụ igwe nlegharị anya ọgbara ọhụrụ maka usoro Python eji ewepụta ọdịnaya ma ọ bụ nkwupụta dị ike. Nhazi dị oke uru mgbe ị na-emepụta faịlụ nhazi ahaziri maka ọtụtụ sava mana pụrụ iche maka nke ọ bụla n'ime ha.

Jinja2 na-eji mgbakwụnye mgbakwụnye okpukpu abụọ {{ ... }} iji mechie mgbanwe nke akọwara. Maka nkọwasị, jiri {{# #} na maka nkwupụta ọnọdụ were {% … %}.

Ka anyị were ya na ị nwere ụdị data nke VLAN na netwọk gị nwere sistemụ nnabata nke ịchọrọ ịkwanye na VLAN nke ha dị ka egosiri.

vlans:
  - id: 10
    name: LB
  - id: 20
    name: WB_01
  - id: 30
    name: WB_02
  - id: 40
    name: DB

Iji mee nhazi a, ụdị jinja2 kwekọrọ a na-akpọ vlans.j2 ga-apụta dị ka egosiri. Dịka ị na-ahụ, agbanweela vlan.id na vlan.name n'ime ihe nkwado na-agbagọ.

vlan {{ vlan.id }}
  name {{ vlan.name }}

N'ịkọba ya niile n'ime akwụkwọ egwuregwu nke na-edobe igwe ndị ọbịa dị iche iche, nke a ga-apụta dị ka egosiri:

    - hosts
  tasks:
    - name: Rendering VLAN configuration
      template:
         src: vlans.j2
         dest: "vlan_configs/{{ inventory_hostname }}.conf"

Ọmụmatụ 1: Ịhazi sava webụ na Distros dị iche iche

N'ihe atụ a, anyị ga-emepụta faịlụ index.html ga-egosipụta ozi gbasara aha nnabata & OS nke sava weebụ 2 na-agba ọsọ CentOS & Ubuntu.

Ubuntu 18 - IP address: 173.82.202.239
CentOS 7 -  IP address: 173.82.115.165

E tinyelarị sava weebụ Apache na sava abụọ ahụ.

Yabụ ka anyị mepụta playbook test_server.yml dị ka egosiri:

---

 - hosts: all
   become: yes

   tasks:

    - name: Install index.html
      template:
        src: index.html.j2
        dest: /var/www/html/index.html
        mode: 0777

Ndebiri faịlụ Jinja anyị bụ index.html.j2 nke a ga-atụgharị na faịlụ index.html na sava weebụ ọ bụla. Na-echeta mgbe niile itinye ndọtị .j2 na njedebe iji gosi na ọ bụ faịlụ jinja2.

Ka anyị mepụta faịlụ ndebiri index.html.j2.

<html>
<center>
   <h1> The hostname of this webserver is {{ ansible_hostname }}</h1>
   <h3> It is running on {{ ansible_os_family}}system </h3>
</center>
</html>

Ihe ndebiri a bụ faịlụ HTML bụ isi ebe ansible_hostname na ansible_os_family arụnyere n'ime mgbanwe nke a ga-eji aha nnabata na sistemụ arụ ọrụ nke onye webụsaịtị n'otu n'otu nọ na ihe nchọgharị ahụ.

Ugbu a, ka anyị mee akwụkwọ egwuregwu.

# ansible-playbook test_server.yml

Ugbu a, ka anyị bugharịa ibe weebụ maka ma CentOS 7 na sava weebụ Ubuntu.

Dịka ị na-ahụ, egosipụtala ozi dị iche iche gbasara aha nnabata na ezinụlọ OS na nkesa ọ bụla. Ma nke ahụ ka ọ dị mma ịnwale Jinja2!

Nzacha:

Mgbe ụfọdụ, ị nwere ike kpebie iji eriri pụtara n'ụdị ụfọdụ dochie uru nke mgbanwe.

Dịka ọmụmaatụ, na ọmụmaatụ gara aga, anyị nwere ike ikpebi ime mgbanwe ndị nwere ike ịpụta na nnukwu. Iji mee nke a, tinye uru dị elu na mgbanwe. N'ụzọ dị otú a, a na-atụgharị uru dị na mgbanwe ahụ gaa n'ụdị nnukwu.

{{ ansible_hostname | upper }} => CENTOS 7
{{ ansible_os_family | upper }} => REDHAT

N'otu aka ahụ, ịnwere ike ịtụgharị mmepụta eriri ka ọ bụrụ obere okwu site na itinye arụmụka ala.

{{ ansible_hostname | lower }}  => centos 7
{{ ansible_os_family | lower }} => redhat

Na mgbakwunye, ịnwere ike iji ọzọ dochie eriri.

Ọmụmaatụ:

Aha ihe nkiri a bụ {{ movie_name }} => Aha ihe nkiri bụ Ring.

Iji eriri ọzọ dochie mpụtapụta, jiri arụmụka dochie anya dịka egosiri:

Aha ihe nkiri a bụ {{ movie_name | dochie (\Mgbanaka,Heist) }} => Aha ihe nkiri bụ Heist.

Ka iweghachite uru kacha nta na nhazi, jiri nzacha min.

{{ [ 2, 3, 4, 5, 6, 7 ] | min }}	=>	2

N'otu aka ahụ, iji weghachite ọnụ ọgụgụ kasị ukwuu, jiri max filter.

{{ [ 2, 3, 4, 5, 6, 7 ] | max }}	=>	7

Iji gosipụta ụkpụrụ pụrụ iche, jiri nzacha pụrụ iche.

{{ [ 2, 3, 3, 2, 6, 7 ] | unique }} =>	2, 3

Jiri nzacha random nweta nọmba enweghị usoro n'etiti 0 na uru.

{{ 50 | random }} =>  Some random number

loops:

Dịka n'asụsụ mmemme, anyị nwere loops na Ansible Jinja2.

Dịka ọmụmaatụ, iji wepụta faịlụ nwere ndepụta nọmba jiri maka loop dị ka egosiri na ọmụmaatụ n'okpuru:

{% for number in [0, 1, 2, 3, 4, 5, 6, 7]  %}
{{ number }}
{% end for %}

Ị nwekwara ike ijikọ maka loop na nkwupụta ma ọ bụrụ-ọzọ iji nzacha ma nweta ụfọdụ ụkpụrụ.

{% for number in [0, 1, 2, 3, 4, 5, 6, 7]  %}
{% if number == 5 %}
         {{ number }}
{% endif%}
{% endfor %}

Ma nke ahụ bụ maka nkuzi a. Soro anyị n'isiokwu na-esote ebe anyị ga-agba mbọ na-arụ ọrụ na mgbanwe na eziokwu.