Развертывание Anbible с действиями GitHub
« Автоматизируйте, настроить и выполнять ваши рабочие процессы разработки программного обеспечения прямо в вашем хранилище с действиями GitHub. «Говорит введение на странице документации Действия GitHub. Как это относится к несчастным? Anisible — это код и из-за этого вы можете построить рабочий процесс, который развернут его на основе событий Git. Такие как толкание или потяните запрос к репозитории.
Создать неизбежное действие
Действия GitHub являются индивидуальными задачами, которые вы объединяете для создания заданий и настроить рабочие процессы. Используя Докерный контейнер Action , вы создадите свои собственные, чтобы запустить Anbible, когда вы нажимаете или объединяете запрос на тягу.
Создайте каталог Ansible Action.
mkdir .github/actions/ansible
Создать новый Dockerfile
Отказ
FROM/ansible-in-containers COPY ./entrypoint.sh /entrypoint.sh ENTRYPOINT ["bash","/entrypoint.sh"]
Скопируйте enterpoint.sh
Скрипт в каталог Ansible Action.
#BASH Copy entrypoint.sh .github/actions/ansible #POWERSHELL Copy-Item entrypoint.sh .github/actions/ansible
Создать Action.yml
в новом каталоге.
name: 'Ansible' description: 'Runs an Ansible playbook' inputs: playbook: description: 'Ansible playbook to run' required: true default: playbook.yml inventory: description: 'Ansible inventory to use' required: true default: localhost runs: using: 'docker' image: 'Dockerfile' args: - ${{ inputs.playbook }} - ${{ inputs.inventory }}
Имя и описание дают контекст к тому, что это действие и то, что он делает. Входы определяют параметры, используемые под действием контейнера Docker. PlayBook и инвентарь необходимы вводами для этого действия, потому что без них аргументы точки входа будут пустыми и Ansible-command
не сможет бежать. Каждый из входов также имеет значение по умолчанию.
В разделе пробега, где происходит волшебство. Настройка с использованием до Docker — это то, что указывает тип действия в качестве действия Docker Container. Установка изображения в Dockerfile Указывает на действие, чтобы использовать Dockerfile Local в каталог действий, чтобы построить контейнер, используемый действием. Затем args передаются после того, как изображение будет построено, и действие запускает контейнер.
Создайте рабочий процесс
Рабочие процессы — это пользовательские автоматизированные процессы, которые позволяют органищать вашу сборку, тест и выпуск. Использование рабочего процесса, вы будете бить всех ваших несовмебных файлов, затем запустите Ansible Docker Container Action.
Создать рабочий процесс
каталог
mkdir .github/workflows
Создать deploy_ansable.yml
Файл рабочего процесса.
name: deploy ansible on: push: branches: - master pull_request: branches: - master jobs: build: runs-on: ubuntu-latest steps: - name: checkout repo uses: actions/checkout@v2 - name: Lint Ansible Playbook uses: ansible/ansible-lint-action@master with: targets: "" deployAnsible: needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: ./.github/actions/ansible with: playbook: playbook.yml inventory: localhost
Вышесказанное создаст рабочий процесс GitHub по имени Развернуть это Он будет срабатывать только тогда, когда есть просьба Push или Pull, сделанный в главной ветви репозитория. После вызвания рабочего процесса появится два рабочих места. Во-первых, построить
работа работает. Создание запускает действие публичного GitHub Action, называемое Ansible-Lint, который запускает утилиту командной линии Ansible-Lint против всех файлов .yml или.yaml в вашем репозитории. Если Ansible-Lint успешно, вторая задача срабатывает. Запуск Anbible Docker Action Action развертывание
Запускается с использованием со значениями, предоставленными в качестве аргументов к контейнеру. Затем контейнер запускает Ansible-Playbook
Команда с аргументами, указанными в с
список.
Осталось только одно, толкайте ваши изменения. GitHub обнаружит файлы в каталоге .gitub и создают действия и рабочий процесс на основе документов .yml в соответствующих каталогах. Дайте ему минуту или два, тогда ваш репозиторий на Github.com И просмотрите результаты действия под вкладкой Действия.
Теперь вы узнали, как строить, запустить и развернуть небезополучить внутри контейнера Docker. Контейнеры больше не являются чем-то только разработчиками для запуска приложений. Это также то, как Sysadmins, Evensies Engineers и SRES развертывают инфраструктуру в качестве кода. Используя контейнеры, вы увидите преимущества из первых рук. Контейнеры обеспечивают последовательный опыт разработки для вас, ваша команда и освобождают трубопроводы, версивенные изображения вашей неблагоприятной среды, повышенной портативности и гибкости. Контейнеры — это будущее инфраструктуры, а не только веб-приложения. Не ждите, пока вам не нужно узнать о них, начать сегодня, начните сейчас.
Прочитайте полный блог, «Использование Anbible в контейнерах» на Duffney.io.
Оригинал: «https://dev.to/joshduffney/deploy-ansible-with-github-actions-2f3d»