Ansible е популярен, безплатен инструмент за автоматизация с отворен код, който ни позволява да автоматизираме задачите на DevOps, като например управление на конфигурацията, внедряване на приложения и др.
Комбинирането на Ansible с GitHub Actions ни позволява да автоматизираме изпълнението на Ansible playbooks всеки път, когато се случи конкретно събитие в хранилище, като натискане към главния клон.
Този урок ви учи как да настроите действие на GitHub за стартиране на Ansible playbook, което е полезно за автоматизиране на внедряването в отговор на промени в кода.
Предпоставки:
Преди да продължите, уверете се, че имате следното:
- Акаунт в GitHub
- Съществуващо хранилище на GitHub
- Основни познания за Ansible books
- Целева машина, където Ansible може да изпълнява задачите. Уверете се, че Ansible може да се свърже с тези машини от GitHub runner.
Стъпка 1: Настройте Ansible Environment
Създайте и съхранете Ansible playbook и всички свързани файлове в хранилището на GitHub. Това трябва да включва файлове като шаблони за роли, променливи и т.н.
Примерна книга за игра е както следва:
---- име: Уверете се, че Nginx е инсталиран на уеб сървъри
хостове: уеб сървър
стана: да
задачи:
- име: Актуализиране на apt кеша
подходящо:
update_cache: да
- име: Инсталирайте Nginx
подходящо:
име: nginx
състояние: настояще
Уверете се, че имате инвентарен файл, посочващ целевите машини за Ansible.
Стъпка 2: Настройте тайните в GitHub Repository
Като се има предвид, че книгата се нуждае от чувствителна информация като SSH ключове или пароли, GitHub предоставя начин за сигурно съхраняване на тайните:
Отидете до вашето GitHub хранилище.
Отидете на Настройки > Тайни и променливи -> Действия -> Нова тайна на хранилището.
Стъпка 3: Създайте GitHub Action Workflow
В хранилището създайте директория „.github/workflows“. В тази директория създайте YAML файл за вашия работен процес.
Добавете работния процес, както следва:
име: Изпълнете Ansible PlaybookНа:
натиснете:
клонове:
- господар
работни места:
разположи:
работи на: ubuntu-latest
стъпки:
- име: Checkout code
използва: actions/checkout@v2
- име: Настройване на SSH ключ
изпълнение: |
echo '${{ secrets.SSH_PRIVATE_KEY }}' > private_key.pem
chmod 600 private_key.pem
- име: Run Ansible Playbook
изпълнение: |
sudo apt актуализация
sudo apt install -y ansible
ansible-playbook -i hosts.ini my-playbook.yml --private-key=private_key.pem --user=${{ secrets.REMOTE_USER }}
Стъпка 4: Задействайте работния процес
Всеки път, когато натискате към главния клон, GitHub автоматично ще стартира този работен процес и по този начин ще изпълни книгата.
Заключение
Това е всичко за този. Разгледахме как да стартирате Ansible playbook с помощта на действията на Github.