Ansible ни позволява да автоматизираме управлението на конфигурацията на системите и да добавим произволен брой клиенти, както желаем. Замисляли ли сте се колко сложно може да стане това? Замисляли ли сте се колко дълго и объркващо могат да станат книгите за игри? Как все още Ansible изглежда да изглежда като бриз? Той използва концепцията за Ansible Roles и за това ще говорим в този блог.
Обхванати теми:
- Въведение в отговорните роли
- Многократна употреба на отговорните роли
- Структура на директория за роли
- Демонстрация: Инсталиране на MEAN Stack с помощта на Ansible Roles
Ако искате да овладеете DevOps, ' разбира се ще бъде вашата опция за преминаване.
как да използвам
Въведение в отговорните роли
Ansible Role е концепция, която се занимава по-скоро с идеи, отколкото със събития. Това е основно друго ниво на абстракция, използвано за организиране на книги за игри. Те осигуряват скелет за независима и многократно използвана колекция от променливи, задачи, шаблони, файлове и модули, които могат да бъдат автоматично заредени в книгата за игра. Книжките за игра са колекция от роли. Всяка роля има специфична функционалност.
Нека да обясня това с пример. Да предположим, че искате вашата книга за игри да изпълнява 10 различни задачи в 5 различни системи, бихте ли използвали една книга за игра за това? Не, използването на една книга може да я направи объркваща и склонна към гафове. Вместо това можете да създадете 10 различни роли, където всяка роля ще изпълнява една задача. След това всичко, което трябва да направите, е да споменете името на ролята в книгата за игри, за да ги извикате. Ще научите как да използвате ролите по-нататък в този блог.
Многократна употреба на отговорните роли
Отговорните роли са независими една от друга. Изпълнението на една роля не зависи от други и следователно те могат да бъдат използвани повторно. Можете дори да модифицирате и персонализирате тези роли според вашите изисквания. Това намалява нашата задача да пренаписваме цяла част от кода всеки път, когато имаме нужда, като по този начин опростяваме работата си.
Да се върнем към предишния пример. Написали сте 10 роли и сега трябва да използвате 5 от тях за друг набор от провизии. Отново ли пишете цялата книга за игри? Не, просто използвате повторно тези 5 роли, като ги извикате в тази нова книга за игри. Можете също така да правите модификации, ако е необходимо, но това все пак ще спести много от вашето време.
Да предположим, че трябва да напишете книга за игра за настройване на LAMP стека. Трябва да създадете 4 роли, всяка за създаване на Linux, Apache, MongoDB и PHP. В бъдеще, ако искате друга книга за игри за настройка на LAMP стека, както и WordPress, ще създадете ли отново нови роли за LAMP стека и WordPress? Не! Можете просто да използвате повторно по-старите роли (използвани за стека LAMP) и допълнително да създадете нова роля за WordPress.
Структура на директория за роли
Използвайки Ansible Roles, очаквайте файловете да бъдат в определена файлова структура. Най-объркващата част от използването на роли е разбирането на файловата йерархия. Ansible предоставя функция, наречена Ansible Galaxy, която ви помага да играете с роли. Вече знаем къде е нашият Ansible в Ubuntu (/ etc / ansible). Виждали ли сте някога директория, наречена роли в / etc / ansible? Тази директория съществува точно поради тази причина. Създавате различни роли в тази директория.
Директорията ще изглежда така:
Можете да създадете роля с помощта на анзиб-галактика команда init вътре / etc / ansible / role.
$Судоansible-galaxy init
Ще видите, че и други директории за роли също биха били създадени.
Тези директории са задачи, манипулатори, настройки по подразбиране, vars, файлове, шаблони и мета и README.mdфайл.
Задачи - Съдържа основния списък със задачи, които трябва да бъдат изпълнени от ролята. Тосъдържафайла main.yml за тази конкретна роля.
Манипулатори - Съдържа манипулатори, които могат да се използват от тази роля или дори навсякъде извън тази роля.
По подразбиране - Съдържа променливите по подразбиране, които ще бъдат използвани от тази роля.
Чия - Тази директория се състои от други променливи, които ще бъдат използвани от ролята. Тези променливи могат да бъдат дефинирани във вашата книга за игри, но е добър навик да ги дефинирате в този раздел.
android студио стъпка по стъпка
Файлове - Съдържа файлове, които могат да бъдат разположени от тази роля. Той съдържа файлове, които трябва да бъдат изпратени на хостовете, докато конфигурирате ролята.
Мета - Дефинира метаданни за тази роля. По принцип той съдържа файлове, които установяват зависимости от роли.
Всеки задача директория трябва да се състои от main.yml файл, където е записан действителният код за тази конкретна роля.
Нека сега разберем работата или ролите с демонстрация за инсталиране на MEAN Stack.
Демонстрация: Инсталиране на MEAN Stack с помощта на Ansible Roles
Ще демонстрирам как да инсталирам MEAN Stack с помощта на Ansible Roles, като просто изпълня една единствена книга за игра. Ще имаме три роли: 1) Инсталиране на предпоставки, 2) Инсталиране на MongoDB и 3) Инсталиране на NodeJS. Предполагам, че вече сте го направили инсталира Ansible и направи връзка сървър-клиент на Ubuntu . Нека започнем да играем с Ansible Roles.
Етап 1 - Придвижете се до директорията / etc / ansible / role и създайте ролите за предпоставки, MongoDB и NodeJS.
$ cd / etc / ansible / role $ sudo ansible-galaxy init предпоставки $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs
Сега трябва да видите три роли в директорията си за „роли“.
Стъпка 2 - Напишете main.yml за предпоставки, които инсталират Git.
$ cd предпоставки / задачи / main.yml --- - име: Инсталирайте git apt: име: git състояние: настоящ update_cache: да
Стъпка 3 - Напишете main.yml за ролята на MongoDB
$ cd /mongodb/tasks/main.yml --- - name: MongoDB - Импортиране на публичен ключ apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - name: MongoDB - Добавяне на хранилище apt_repository: filename: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' състояние: настоящ update_cache : yes - name: MongoDB - Инсталирайте MongoDB apt: name: mongodb-org state: present update_cache: yes - name: Стартирайте mongod shell: 'mongod &'
Стъпка 4 - Напишете main.yml заnodejsроля
$ cd nodejs / tasks / main.yml --- - име: Node.js - Вземете скрипт get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- име: Node.js - Задайте разрешение за изпълнение на файл на скрипт: път:' {{var_node}} / nodejs.sh 'режим:' u + x '- име: Node.js - Изпълнение на обвивката на скрипта за инсталиране:' {{var_node}} / nodejs.sh '- име: Node.js - Премахване на инсталационния скрипт: път:' {{var_node}} / nodejs.sh 'състояние: отсъства - име: Node.js - Инсталирайте Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-essential - nodejs - name: Node.js - Инсталирайте bower и gulp глобално npm: name = {{item}} state = present global = yes with_items : - bower - глътка
Стъпка 5 - Напишете основната си книга за игри
$ cd /etc/ansible/mean.yml --- - хостове: възли отдалечен_потребител: ansible станете: да станете_метод: sudo vars: # променлива, необходима по време на инсталация на възел var_node: / tmp роли: - предпоставки - mongodb - nodejs
След като дефинирахме роли за инсталиране на предпоставките, MongoDB и NodeJs, нека ги разположим. Изпълнете книгата за игра, като използвате следната команда.
$Судоansible-playbook /etc/ansible/mean.yml -K
Както можете да видите, всички задачи са изпълнени и състоянието им е променено. Това означава, че промените в playbook са приложени както към вашия сървър, така и към хоста. Настройването на MEAN Stack е само един пример. Можете да настроите буквално всичко и всичко, като използвате Ansible Roles.
Това ни води до края на блога Ansible Roles. Ако намерите тази статия за полезна, разгледайте ' предлага се от Edureka. Той обхваща всички инструменти, които са направили ИТ индустрията по-добра.
Имате въпрос към нас? Моля, публикувайте го на и ние ще се свържем с вас.