Отговорно осигуряване: по-интелигентен и лесен начин за осигуряване



Този блог на Ansible Provisioning посочва една от най-полезните функции Ansible. Той демонстрира как да настроите LAMP стек и да хоствате уеб сайт на Ubuntu.

Първата стъпка в автоматизирането на всеки оперативен жизнен цикъл на приложението е автоматизирането на осигуряването на инфраструктурата. Предоставянето е досаден процес на настройване на конфигурации, разпределяне на памет, дисково пространство и т.н., преди действителното им използване. Нека да видим как Ansible Provisioning прави това по-опростено и по-бързо.

Повечето от широкомащабните внедрявания изискват да имате идентична настройка на средата на множество системи.И така, как се прави това? Изпълнете същия набор от команди на сто системи ръчно ?? Не, това е твърде старо училище. Това е нещо, в което машините са добри, а не хората. Какво ще стане, ако ви кажа, че този дълъг и скучен процес може да бъде направен само с изпълнението на една книга за игра Ansible?За това ще говорим в този блог - Ansible Provisioning.





Обхванатите теми са:

is-a връзка java

Ако искате да овладеете DevOps, ' курсът трябва да бъде вашата опция за преминаване.



Какво е Ansible?

DevOps е култура, при която на автоматизацията се дава наистина висок приоритет. Когато може да има инструменти за автоматизиране на внедряването и процеса на тестване, защо да не разполагаме с инструменти за управление на конфигурацията и осигуряване. Има милион начини да станете по-умни и използването на Ansible е един от тях. Това е един от най-широко използваните инструменти.

Ansible използва YAML базирани книги за игри, които дори могат да бъдат разбрани от начинаещ. Той използва архитектура без агенти за комуникация със своите клиенти, която не включва инструмент на трета страна, който да бъде инсталиран на машината на клиента, а вместо това използва SSH-базирани връзки. Ansible като инструмент за автоматизация, нека разберем какво може да автоматизира.

Какво може Ansible Automate?

Назовете етап от цикъла на разработка и Ansible ще ви помогне с него, било то управление на конфигурацията, осигуряване, оркестрация, непрекъсната доставка, сигурност или дори разполагане на приложения. Ansible обединява работния процес на цикъла на разработка в единна платформа за автоматизация без агент.



  1. Предоставяне: Необходимо е създаването на подходяща среда за приложението / софтуера. Ansible предоставя начин за автоматизиране на средата, създадена за съществуването на приложението.
  2. Управление на конфигурацията: Изпълнявайте голямо разнообразие от задачи за конфигуриране, като услуги за стартиране / спиране, промяна на конфигурацията на система, устройство или приложение и т.н.
  3. Внедряване на приложението: Автоматизирайте дефинирането на внедряване с Ansible и управлявайте разгръщането с помощта на Отговорна кула . Това прави целия цикъл на приложения от производството до внедряването ефективен и управляем.
  4. Непрекъсната доставка: Създаването и управлението на непрекъсната интеграция / конвейер за непрекъсната доставка може да стане тромаво. Това е мястото, където Ansible стъпва и улеснява живота на разработчика.
  5. Сигурност и съответствие: Работата с проектите винаги определя граници и е интегрирана с политиките за сигурност на компанията. Интегрирането на политики за сигурност автоматично с внедряването може да улесни спазването на политиките.
  6. Оркестрация: Целият проект е колекция от много различни екземпляри с различна конфигурация. Ansible обединява и управлява тези различни случаи като цяло.

Необходимост от отговорно предоставяне

Както споменахме по-рано, първата стъпка къмавтоматизиране на експлоатационния жизнен цикъл на приложениятаподготвя околната среда, т.е. Големите внедрявания изискват множество хостове с абсолютно еднакви конфигурации. След осигуряване на един хост, какви са шансовете да получите следващите 10 хоста да имат абсолютно същите конфигурации, ако се извърши ръчно? Също така колко време ще отделите за извършване на една и съща повтаряща се задача? Тук Ansible идва в нашата услуга. Можете да осигурите стотици хостове, само като изпълните една книга за игра. Магия? Хаха! Не, просто еволюция в автоматизацията.

Демонстрация: Създайте LAMP стек и внедрете уеб страница

Да предположим, че се опитвате да разположите уебсайт на 30 системи, всяко внедряване на уебсайт ще изисква основна операционна система, уеб сървър, база данни и PHP. Използваме ansible playbook, за да инсталираме тези предпоставки на всички 30 системи наведнъж.

В тази демонстрационна демонстрация на Ansible ще ви покажа как да осигурите среда за хостинг на уебсайтове, използвайки Ansible. Инсталираме стека LAMP (Linux, Apache, MySQL и PHP) и след това разполагаме уебсайт.

За тази демонстрация използвах Linux VirtualBox с Ubuntu версия 17.04. Използвал съм две виртуални машини, едната като сървър, където е инсталиран Ansible, а другата машина действа като мой отдалечен хост. Нека започнем с настройката Ansible на сървъра.

Създадох проста статична уеб страница, запазена в папка индекс който има два файла, index.html и style.css.

index.html:

  Уебсайт, използващ HTML и CSS                Приемете сега        

style.css

* { марж: 0 подплата: 0 } заглавка { фоново изображение: линеен градиент (rgba (0,0,0,0.5), rgba (0,0,0,0.5)), url ('puppie.jpg') височина: 100vh размер на фона: корица фон-позиция: център } .nav-menu { плувка: вдясно стил на списъка: няма margin-top: 30px } .nav-menu li { дисплей: вграден блок } .nav-menu li a { цвят: тюркоаз декорация на текст: няма подплата: 5px 20px семейство шрифтове: 'Verdana', 'sans-serif' размер на шрифта: 20px } .homebtn a { граница: 1px плътно сиво цвят на фона: бял } .nav-menu li a: hover { граница: 1px плътно сиво цвят на фона: бял } .tagline { позиция: абсолютна ширина: 1200px поле вляво: 0 margin-top: 0 } h1 { цвят: бял размер на шрифта: 50px семейство шрифтове: 'Verdana', 'sans-serif' подравняване на текст: център margin-top: 275px } .adopt { margin-top: 30px поле вляво: 540px } .bttn { граница: 1px плътно бяло подплата: 10px 30px цвят: жълт семейство шрифтове: 'Verdana', 'sans-serif' размер на шрифта: 22px декорация на текст: няма } .adopt a: hover { цвят на фона: burlywood }

Етап 1: Изпълнете следните команди за актуализиране на хранилища, добавете необходимите хранилища и конфигурирайте PPA на вашето устройство за Ansible инсталация:

$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa: ansible / ansible

Натиснете enter, за да приемете добавянето на PPA и след това накрая инсталирайте Ansible след актуализиране на хранилищата.

$ sudo apt-get update $ sudo apt-get install ansible

Стъпка 2: Отидете до файла / etc / hosts на вашия сървър и добавете името на хоста и IP адреса на хоста.

и т.н. хостове - Ansible провизиране - EdurekaФиг. 1 - Добавяне на отдалечени хостове към файл / etc / hosts - Ansible Provisioning

Стъпка 3: Тъй като Ansible работи върху архитектурата без агенти за използване на SSH за комуникация със своите хостове, настройте ssh ключовете. По принцип имаме един сървър и един хост. Ние контролираме хоста с нашия сървър и по този начин създаваме публичен ssh-ключ на сървъра и го копираме в машината на хоста. Изпълнете следната команда на сървъра:

$ ssh-keygen

Ще бъдете подканени да въведете името на файлакъдето iбихте искали да запазите ключа си и също така да ви подканим да създадете парола за достъп до генерирания ключ, която не е задължителна. По подразбиране публичният ключ се запазва в .ssh / id_rsa.pub файл, а частният ключ се записва в .ssh / id_rsa.

Фиг. 2 - Създаване на ssh ключ - Ansible Provisioning

Сега този генериран ключ трябва да присъства във вашия хост. Копирането на ключа в хоста може да се извърши по два начина, или ръчно копиране в хоста, или използване на командата ssh-copy-id. В този случай ще го копирам с помощта на командата ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Забележка - Уверете се, че можете да ssh в хоста си, преди да изпълните тази команда.

Стъпка 4: Конфигурирайте Ansible хостове. Отидете на файла / etc / ansible / hosts и добавете името на хоста. Това ще варира в зависимост от броя хостове и сървъри, които имате. Можете също така да имате повече отедин сървъртук.

Фиг. 3 - Добавяне на отдалечени хостове във файла с инвентара - Отговорно осигуряване

Стъпка 5: Проверете дали вашите домакини са готови. Изпълнете тази команда, трябва да получите подобен изход.

$ ansible -m пинг всички

Фиг. 4 - Проверка на състоянието на отдалечен хост - Подходящо предоставяне

Стъпка 6: Сега нашата Ansible е готова, нека направим средата готова за разполагане на уебсайт. Ще използваме една книга за игра Ansible, за да инсталираме Apache, MySql и PHP. Нека да го разгледаме.

Забележка: Ако сте начинаещ, погледнете това блог, който обяснява как да напишете книга за игри.

--- # Настройка на LAMP стека - хостове: задачи хост1: - име: Добавяне на ppa хранилище става: да apt_repository: repo = ppa: ondrej / php - име: Инсталиране на стека на лампа става: да apt: pkg: - apache2 - mysql-сървър - php7.0 - php7.0-mysql състояние: настоящ кеш за актуализация: да - име: стартирайте сървъра на apache станете: да услуга: име: състояние на apache2: стартирано активирано: да - име: стартирайте услугата mysql станете: да услуги: име: mysql състояние: стартирано активирано: да - име: създайте файл на целевата директория: път = / var / www / html състояние = режим на директория = 0755 - име: разполагане index.html стана: да копие: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Тук, както можете да видите, имаме 6 задачи, всяка задача изпълнява определена функция.

  • Първата задача добавя хранилището, необходимо за инсталиране на MySQL и PHP.
  • Втората задача инсталира apache2, MySQL-сървър, PHP и PHP-MySQL.
  • Третата и четвъртата задача стартират услугата Apache и MySQL.
  • Петата задача създава целевата директория в хост машината и
  • И накрая, шестата задача изпълнява файла index.html, тя взима файла от сървърната машина и го копира в хост машината.

Изпълнете тази книга за игра със следната команда:

$ ansible-playbook lamp.yml -K

Линиите ставам: да в книгата за игри казва, че трябва да се изпълни като корен и следователно, когато изпълните командата, ще поискате парола за sudo.

Фиг. 5 - Изпълнение на Ansible Playbook - Ansible Provisioning

Сега можете да влезете в хост машината и да проверите дали уебсайтът е хостван.

Фиг. 6 - Хоствайте уебсайта на Localhost - Ansible Provisioning

Сега това е уеб страница, която ще бъде разположена във всички хостове, които взаимодействат със сървъра (в нашия случай имахме само един хост), но същото би било възможно дори за 100 отдалечени хоста.

Това ни води до края на блога Ansible Provisioning. Ако намерите тази статия за полезна, разгледайте ' предлага се от Edureka. Той обхваща всички инструменти, които са направили ИТ индустрията по-умна.

Имате въпрос към нас? Моля, публикувайте го на и ние ще се свържем с вас.