ansible
प्लेबुक का परिचय
खोज…
अवलोकन
Ansible में, एक प्लेबुक एक YAML फाइल है जिसमें एक सर्वर को कैसे देखना चाहिए इसकी परिभाषा है। एक प्लेबुक में आप परिभाषित करते हैं कि आपके द्वारा इच्छित राज्य में सर्वर प्राप्त करने के लिए Ansible को क्या कार्रवाई करनी चाहिए। केवल जो आप परिभाषित करते हैं वह हो जाता है।
यह एक मूल उत्तर-पुस्तिका है, जो web
समूह से संबंधित प्रत्येक होस्ट पर git स्थापित करता है:
---
- name: Git installation
hosts: web
remote_user: root
tasks:
- name: Install Git
apt: name=git state=present
प्लेबुक की संरचना
प्लेबुक का प्रारूप काफी सीधा है, लेकिन रिक्ति और लेआउट के मामले में सख्त है। एक प्लेबुक में नाटकों का समावेश होता है। एक नाटक लक्ष्य मेजबानों का एक संयोजन है और इन मेजबानों पर हम जिन कार्यों को लागू करना चाहते हैं, वे हैं, इसलिए एक प्लेबुक का एक चित्र यह है:
इस प्लेबुक को निष्पादित करने के लिए, हम बस चलाते हैं:
ansible-playbook -i hosts my_playbook.yml
खेलने की संरचना
यहाँ एक सरल नाटक है:
- name: Configure webserver with git
hosts: webserver
become: true
vars:
package: git
tasks:
- name: install git
apt: name={{ package }} state=present
जैसा कि हमने पहले कहा, हर नाटक में होना चाहिए:
कॉन्फ़िगर करने के लिए मेजबानों का एक सेट
उन मेजबानों पर निष्पादित किए जाने वाले कार्यों की एक सूची
एक नाटक को उस चीज़ के रूप में सोचें जो मेजबान को कार्यों से जोड़ता है। मेजबानों और कार्यों को निर्दिष्ट करने के अलावा, नाटक कई वैकल्पिक सेटिंग्स का भी समर्थन करते हैं। दो आम हैं:
-
name
: एक टिप्पणी जो नाटक के बारे में बताती है। जब खेल चलना शुरू हो जाता है, तो इसका जवाब देने योग्य होगा -
vars
: चर और मूल्यों की एक सूची
टैग
प्ले में कई कार्य हैं, जिन्हें टैग किया जा सकता है:
- name: Install applications
hosts: all
become: true
tasks:
- name: Install vim
apt: name=vim state=present
tags:
- vim
- name: Install screen
apt: name=screen state=present
tags:
- screen
टैग में निर्दिष्ट होने पर 'vim' के साथ टास्क चलेगा। आप जितने चाहें उतने टैग निर्दिष्ट कर सकते हैं। 'इंस्टॉल' या 'कॉन्फिग' जैसे टैग का उपयोग करना उपयोगी है। फिर आप टैग या स्किप-टैग को निर्दिष्ट करके प्लेबुक चला सकते हैं। के लिये
ansible-playbook my_playbook.yml --tags "tag1,tag2"
ansible-playbook my_playbook.yml --tags "tag2"
ansible-playbook my_playbook.yml --skip-tags "tag1"
डिफ़ॉल्ट रूप से Ansible सभी टैग चलाता है