Grada.me Infra е проект, който улеснява и автоматизира конфигурацията на инфраструктурата за проекта Grada.me. Това включва:
- създаването на потребители и потребителски групи
- инсталацията и конфигурирането на различни инструменти и услуги, които са необходими за проекта:
- Build сървър
- Хранилище за артефакти
- Инструменти за анализ на кода
Технологиите, които се използват в проекта са:
- Ansible - Безплатен софтуер за автоматизация и управление конфигурацията на сървъри.
- OpenSSH - Пакет от инструменти, базирани на SSH протокола.
-
Инсталирайте последната версия на
ansible
като следвате стъпките описани тук: http://docs.ansible.com/ansible/intro_installation.html -
За улеснение можем да конфигурираме връзката със сървърите посредством файла
~/.ssh/config
, т.к.ansible
използваssh
за връзка със сървърите, които конфигурираме. Примерно съдържание на~/.ssh/config
:Host *grada.me HostName grada.me Port 9999 IdentityFile /path/to/obshtestvo.bg/id_rsa
-
Създайте файл с име
hosts
като копиратеhosts.template
:cp hosts.template hosts
-
Редактирайте файла
hosts
като укажете hostnames на различните сървъри, които ще бъдат конфигурирани, в съответните секции. Например:[build] build.grada.me [repo] repo.grada.me
-
За да се уверите, че всичко е правилно конфигурирано, изпълнете следната команда:
ansible all -i hosts -m ping
Резултатът трябва да бъде
SUCCESS
:build.grada.me | SUCCESS => { "changed": false, "ping": "pong" }
-
Изпълнете следната команда за автоматична конфигурация на сървърите:
ansible-playbook -i hosts playbook.yml
-
Voilà 😄