Yadda ake aiki da Sahihan Sauye-sauye da Gaskiya - Sashe na 8
Mun ambaci masu canji a cikin wannan jerin Ansible kuma don kawai dan motsa zuciyar ku. Canji, kamar a cikin yawancin yare na shirye-shirye, asali mahimmin maɓalli ne wanda ke wakiltar ƙima.
Menene Tabbataccen Sunan Mai Canji?
Suna mai canzawa ya haɗa da haruffa, lambobi, masu jaddadarwa ko haɗuwa ko dai 2 ko dukansu. Koyaya, ku tuna cewa suna mai canzawa dole koyaushe ya fara da wasiƙa kuma kada ya ƙunshi sarari.
Bari mu ɗan duba wasu 'yan misalai na ingantattun sunayen da ba za a karɓa ba:
football foot_ball football20 foot_ball20
foot ball 20 foot-ball
Bari mu tattauna nau'ikan canzawa:
1. Canje-canje na Littafin Kunya
Canjin Playbook abu ne mai sauki kuma kai tsaye. Don ayyana mai canji a cikin littafin wasan, kawai yi amfani da maɓallin keɓaɓɓun kalmomi kafin rubuta masu canjin ku tare da ɓarna.
Don samun damar darajar mai canzawa, sanya shi tsakanin maɗaura madauri biyu haɗe tare da alamun ambato.
Ga misali littafin wasan kwaikwayo mai sauki:
- hosts: all vars: greeting: Hello world! tasks: - name: Ansible Basic Variable Example debug: msg: "{{ greeting }}"
A cikin littafin wasan kwaikwayo na sama, ana musanya canjin gaisuwa da ƙimar San duniya! lokacin da aka kunna littafin wasan. Littafin wasan kawai ya buga sakon Barka da duniya! lokacin da aka zartar.
Ari, kuna iya samun jerin ko tsararru na masu canji kamar yadda aka nuna:
Littafin wasan da ke ƙasa yana nuna canjin da ake kira nahiyoyi. Mai canji yana riƙe da ƙimomi daban-daban guda 5 - sunayen nahiyar. Kowane ɗayan waɗannan ƙimar za a iya samun damarsa cikin sauƙi ta amfani da index 0 a matsayin farkon canji.
Misalin littafin wasan kwaikwayo na ƙasa ya dawo da kuma nuna Asiya (Fihirisa 1).
- hosts: all vars: continents: - Africa - Asia - South America - North America - Europe tasks: - name: Ansible List variable Example debug: msg: "{{ continents [1] }}"
Za'a iya tsara jerin masu canji kamar yadda aka nuna:
vars: Continents: [Africa, Asia, South America, North America, Europe]
Don jera dukkan abubuwa akan jerin, yi amfani da tsarin koyaushe. Wannan zai yi amfani da dukkanin ƙimomin da ke cikin jeri.
- hosts: all vars: continents: [Africa, Asia, South America, North America, Europe] tasks: - name: Ansible array variables example debug: msg: "{{ item }}" with_items: - "{{ continents }}"
Wani nau'in Canji mai saurin fahimta shine ƙamus na kamus.
Ablesarin masu ƙamus ana samun ƙarin tallafi a cikin littafin waƙa. Don ayyana mai ƙamus na ƙamus, kawai gano maɓallin ƙimar maɓallin ke ƙasa da sunan mai ƙididdigar ƙamus ɗin.
hosts: switch_f01 vars: http_port: 8080 default_gateway: 10.200.50.1 vlans: id: 10 port: 2
A cikin misalin da ke sama, vlans shine ƙamus na kamus yayin id da tashar jiragen ruwa sune nau'i-nau'i masu darajar maɓalli.
hosts: switch_f01 vars: http_port: 8080 default_gateway: vlans: id: 10 port: 20 tasks: name: Configure default gateway system_configs: default_gateway_ip: “{{ default_gateway }}“ name: Label port on vlan 10 vlan_config: vlan_id: “{{ vlans[‘id’] }}“ port_id: 1/1/ {{ vlans[‘port’] }}
Don port_id, tunda muna farawa da ƙimar da rubutu kuma ba mai canzawa ba, alamun ambaton ba lallai ba ne don kewaye da katakon takalmin gyaran kafa.
2. Musamman Masu canji
Ansible yana ba da jerin zaɓaɓɓun maɓuɓɓugan canji waɗanda za a iya nusar da su a cikin samfuran Jinja2 da littattafan wasa amma mai amfani ba zai iya canzawa ko bayyana shi ba.
Gabaɗaya, ana magana da jerin masu canji da za'a iya fayyace su azaman tabbatattun hujjoji kuma waɗannan ana tattara su lokacin da aka aiwatar da littafin wasan kwaikwayo.
Don samun jerin duk masu canji masu saurin amfani, yi amfani da tsarin saitin a cikin Ansible ad-hoc umurnin kamar yadda aka nuna a ƙasa:
# ansible -m setup hostname
Wannan yana nuna fitarwa a cikin tsarin JSON kamar yadda aka nuna:
# ansible -m setup localhost
Daga sakamakon, zamu iya ganin cewa wasu misalai na Ansible masu canji na musamman sun haɗa da:
ansible_architecture ansible_bios_date ansible_bios_version ansible_date_time ansible_machine ansible_memefree_mb ansible_os_family ansible_selinux
Akwai sauran masu canji masu sauƙin fahimta na musamman waɗannan 'yan misalai ne kaɗan.
Ana iya amfani da waɗannan masu canjin a cikin samfurin Jinja2 kamar yadda aka nuna:
<html> <center> <h1> The hostname of this webserver is {{ ansible_hostname }}</h1> <h3> It is running on {{ ansible_os_family}}system </h3> </center> </html>
3. Kayayyakin Kayayyaki
Aƙarshe, a cikin jeren, muna da Ansible kaya masu canji. Ididdigar kaya fayil ne a cikin tsarin INI wanda ya ƙunshi dukkan rundunonin da Ansible zai sarrafa su.
A cikin ƙididdigar abubuwa, zaku iya sanya canji ga tsarin mai masauki kuma daga baya kuyi amfani dashi a littafin wasan.
[web_servers] web_server_1 ansible_user=centos http_port=80 web_server_2 ansible_user=ubuntu http_port=8080
Za a iya wakiltar abin da ke sama a cikin fayil ɗin wasan yara YAML kamar yadda aka nuna:
--- web_servers: web_server_1: ansible_user=centos http_port=80 web_server_2: ansible_user=ubuntu http_port=8080
Idan tsarin masu masaukin sun raba masu canji iri ɗaya, zaku iya ayyana wani rukuni a cikin fayil ɗin kayan kaya don sanya shi mara nauyi kuma ku guje maimaita maimaitawa.
Misali:
[web_servers] web_server_1 ansible_user=centos http_port=80 web_server_2 ansible_user=centos http_port=80
Za a iya tsara abubuwan da ke sama kamar:
[web_servers] web_server_1 web_server_2 [web_servers:vars] ansible_user=centos http_port=80
Kuma a cikin fayil ɗin littafin YAML, za a bayyana wannan kamar yadda aka nuna:
--- web_servers: hosts: web_server_1: web_server_2: vars: ansible_user=centos http_port=80
Gaskiyar Magana
Lokacin kunna littattafan wasa, aiki na farko wanda Ansible yayi shine aiwatar da saitin aiki. Na tabbata da gaske cewa tabbas kun riski fitowar:
TASK: [Gathering facts] *********
Hujjoji masu ma'ana ba komai bane face kaddarorin tsarin ko wasu bayanai game da nodes masu nisa wadanda ka hada su. Wannan bayanin ya hada da tsarin gine-gine, da tsarin OS, da bayanan BIOS, da tsarin zamani da kwanan wata, da tsarin aiki, da adireshin IP, da kuma bayanan kayan aiki don ambaton kadan daga ciki.
Don samun gaskiyar game da kowane tsarin kawai yi amfani da tsarin saitin kamar yadda aka nuna a cikin umarnin da ke ƙasa:
# ansible -m setup hostname
Misali:
# ansible -m setup database_server
Wannan yana fitar da babban adadi na bayanai a cikin tsarin JSON kamar yadda aka nuna:
Tabbatattun hujjoji suna da sauki wajan taimakawa masu kula da tsarin wadanda suke gudanar dasu, misali, gwargwadon tsarin aiki, zasu iya sanin wadanne kunshin software ake bukatar shigarwa, da yadda za'a tsara su, da sauransu.
Gaskiyar Al'ada
Shin kun san cewa zaku iya ƙirƙirar takaddunku na al'ada wanda za'a iya tattara su ta Ansible? Ee, zaka iya. To, yaya kuke tafiya game da shi? Bari mu canza kaya mu ga yadda.
Mataki na farko shine ƙirƙirar kundin adireshi /etc/ansible/facts.d a kan hanyar sarrafawa ko nesa.
A cikin wannan kundin adireshin, ƙirƙiri fayil (s) tare da .fact
tsawo. Wannan fayil din (bayanan) zai dawo da bayanan JSON lokacin da aka kunna littafin wasan a kan Ansible control node, wanda ya hada da sauran hujjojin da Ansible ke fitarwa bayan littafin wasan.
Ga misalin fayil ɗin gaskiya na al'ada wanda ake kira date_time.fact wanda zai dawo da kwanan wata da lokaci.
# mkdir -p /etc/ansible/facts.d # vim /etc/ansible/facts.d/date_time.fact
Sanya layuka masu zuwa a ciki.
#!/bin/bash DATE=`date` echo "{\"date\" : \"${DATE}\"}"
Adana kuma ka fita fayil din.
Yanzu sanya izinin izini:
# chmod +x /etc/ansible/facts.d/date_time.fact
Yanzu, na ƙirƙiri littafin wasan kwaikwayo kan kumburi mai sarrafawa mai suna check_date.yml.
--- - hosts: webservers tasks: - name: Get custom facts debug: msg: The custom fact is {{ansible_local.date_time}}
Endara fayil ɗin gaskiyar zuwa maɓallin ansible_local. Ansible_local yana adana duk bayanan al'ada.
Yanzu gudanar da littafin kunna kuma kiyaye Sahihan bayanan dawo da ingantattun bayanai akan fayil ɗin gaskiya:
# ansible_playbook check_date.yml
Wannan ya kawo mu karshen wannan darasin kan aiki tare da Ansible masu canji da hujjoji.