Рубрики
Uncategorized

Развертывание Anbible с действиями GitHub

Развертывание Anbible с Действием GitHub «Автоматизатор, настроить и выполнить ваше программное обеспечение … Теги с DevOps, Anisible, Github, Docker.

Развертывание 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»