Ansible இயங்கும் முறை
hosts என்ற ஒரு கோப்பில், நாம் நிர்வகிக்க விரும்பும் கணிணிகளின் பெயர்கள் அல்லது IP முகவரிகள், அவற்றுக்கான username, keyfile போன்றவற்றை எழுதுவோம்.
வேறு ஒரு கோப்பில், அந்தக் கணிணிகளில் நாம் செய்ய விரும்பும் பணிகளை, அவற்றுக்கான Module களின் துணை கொண்டு எழுதுவோம். இந்தக் கோப்பு YAML என்றஅமைப்பில் இருக்க வேண்டும். இது Playbook என்று அழைக்கப்படும்.
Ansible ஆனது இந்த Playbookல் உள்ளவற்றைப் படித்து, hosts ல் உள்ள ஒவ்வொரு கணிணியாக login செய்து, தரப்பட்டகட்டளைகளை இயக்கிவிடும். பின் நமது கணிணிக்கு திரும்பிவிடும்.
Inventory File ( hosts)
Ansible ஆனது பொதுவாக /etc/ansible/hosts என்ற கோப்பையே படிக்கிறது. வேறு இடத்தில் இந்தக் கோப்பை வைத்தால், அதன் இடத்தை தனியே குறிப்பிட்டுச் சொல்ல வேண்டும்.
இதில் நாம் பராபமரிக்க விரும்பும் இரு webserver கணிணிகளின் IP Address ஐத் தருவோம். இவற்றுக்கு Web என்று ஒரு பொதுப்பெயர் தரலாம்.
cat /etc/ansible/hosts
[web]
192.168.22.10
192.168.22.11
இப்போதைக்கு இது போதும். வேண்டுமெனில் பல groups, range of address, variable, dynamic inventory, fancy setup போன்ற பலவற்றையும் தரலாம்.
Ansible கற்றுக் கொள்ள, நம்மிடம் பல சர்வர்கள் இருக்கவேண்டிய அவசியம் இல்லை. நம்மிடம் உள்ள சாதாரண லினக்ஸ் கணிணி அல்லது மடிக்கணிணியே போதும். அவற்றிலேயே LXC Container மூலம் பல குட்டி மாயக்கணிணிகள் உருவாக்க முடியும். LXC Container என்று தேடி ஒரு முறை படித்து, பழகி வைத்துக் கொள்ளுங்கள். மேலும் VirtualBox, Vagrant, Xen மூலமும் பல மாயக் கணிணிகள் உருவாக்கி, அவற்றை Ansbile மூலம் பராமரிக்கலாம்.
கட்டளைகளை இயக்குதல்
hosts கோப்பை எழுதியபின், அதில் குறிப்பிட்ட கணிணிகளில் சில கட்டளைகளை இயக்கிப் பார்க்கலாமா?
அவற்றுக்கு ssh வழியே login செய்யும் அனுமதி உங்களுக்கு இருக்க வேண்டும். நீங்கள் shrinivasan என்ற பயனராக Ansbile script ஐ இயக்கினால், உங்கள் சர்வர்களிலும் அதே பயனராகவே login செய்து கட்டளைகள் இயக்கப்படும்.
இப்போது எல்லாக் கணிணிகளையும் ping செய்து பார்ப்போம்.
$ ansible all -m ping
127.0.0.1 | success >> {
“changed”: false,
“ping”: “pong”
}
மேற்கண்ட கட்டளை எல்லா சர்வர்களையும் ping செய்கிறது. இதன் வெளிப்பாடு JSON என்ற அமைப்பில் இருக்கிறது. கட்டளைகளின் வெளிப்பாடும், மாற்றங்கள் ஏதும் இருப்பின் அந்த விவரங்களும் இங்கு தரப்படும்.
வேறு ஒரு பயனராகக் கூட ansible ஐ இயக்கலாம். மேலும் சில தெரிவுகளையும் தரலாம்.
ansible all -m ping -s -k -u nithya
இதில்,
all – hosts கோப்பில் உள்ள எல்லாக் கணிணிகளையும் குறிக்கிறது.
-m ping – ping என்ற module ஆனது ping கட்டளையை இயக்கி, அதன் வெளிப்பாட்டைத் தருகிறது.
-s – sudo மூலம் கட்டளைகளை இயக்குகிறது.
-k – கடவுச்சொல் கேட்கிறது.
-u nithya – nithya என்ற பயனராக கட்டளைகளை இயக்குகிறது.
—
த.சீனிவாசன்