Рубрики
Uncategorized

Как развернуть Docker Container с помощью Anbible на Debian 8

В этом руководстве вы будете создавать и развернуть контейнер докеров, используя Anbible.

Автор оригинала: Mamy Tiana RAKOTOMALALA.

Вступление

Docker — это высокооптимированная платформа для строительства и беговых контейнеров на серверах. Он управляет контейнерами высокоэффективным образом и работает невероятно хорошо с неизбежным.

Anisible — это инструмент автоматизации, который направлен на ослабление задач, таких как управление конфигурацией, развертывание приложений и оркестров внутри службы. Он имеет встроенный модуль Docker, который интегрируется с Docker для управления контейнерами.

В этом руководстве вы будете создавать и развернуть контейнер докеров, используя Anbible.

Предпосылки

Прежде чем начать это руководство, вам понадобится следующее:

Убедитесь, что ваша локальная машина может общаться с сервером над SSH. Используйте клавишу SSH вместо печатанного пароля для причины безопасности.

Шаг 1 — Создайте изображение докера с DockerFile

Существует некоторое количество способов создания документа Docker, но мы рекомендуем вам создать изображение, используя файл определения, называемый DockerFile.

Во-первых, создайте каталог на рабочей станции и DockerFile в созданном каталоге.

mkdir docker
cd docker
touch Dockerfile

Для нашего примера мы собираемся построить Докер Изображение, которое содержит простой веб-сервер.

Редактировать Dockerfile с нано и добавьте следующий контент:

# Version: 0.0.1
FROM debian:8.5
MAINTAINER maintainer_name "maintainer_email"
RUN apt-get update
RUN apt-get install -y nginx
RUN echo 'Default page. Nginx is in your container. ' \
>/usr/share/nginx/html/index.html
EXPOSE 80

Теперь, когда у нас есть DockerFile, Anisible может помочь нам облегчить здание и развертывание на сервере.

Шаг 2 — Редактировать файл инвентаризации

Файл инвентаря содержит IP-адреса или доменные имена, где мы хотим развертывать контейнер. Добавьте этот файл в свой проект:

touch ../hosts

Изменить хозяева файл с нано и добавьте следующий контент в этом файле.

[webserver]
your_server_ip

Теперь проверьте, может ли ваша локальная машина взаимодействовать с сервером через Anisible. Введите следующую команду в терминале:

ansible webserver -m ping -i ../hosts

Выход этой команды должен быть:

your_server_ip | success >> {
    "changed": false, 
    "ping": "pong"
}

Это означает, что вы можете добраться до вашего сервера по SSH, и вы можете использовать это Anbible, чтобы настроить его.

Шаг 3 — Редактировать Anisible Playbook

Сначала измените рабочий каталог на корневой каталог проекта и создайте новый Anisible PlayBook. Макет каталога должен выглядеть как:

docker_project/
    main.yml
    hosts
    docker/
        Dockerfile

Далее добавьте задачу в Anisible PlayBook для установки Docker-Py на доке докера. Интеграция Docker Ansible требует, чтобы вы установили эту библиотеку Python. Мы используем Пип Чтобы установить необходимую библиотеку Python. Итак, мы добавляем также задачу, которая устанавливает Пип до докер-py. .

Установка пакета и Docker требуют привилегии Sudo на сервере. Вы можете обрабатывать эту привилегию в Anbible, указав имя пользователя Sudo через Remote_user и добавление стали: Да и Стань_методу: sudo Директивы.

Редактировать PlayBook main.yml с нано и добавьте следующее:

---
- hosts: webserver
  remote_user: remote_username
  become: yes
  become_method: sudo
  tasks:
    - name: Install pip
      apt: name=python-pip state=present
    - name: install docker-py package
      pip: name=docker-py

PlayBook использует Докер Модуль для создания изображения. Мы предоставляем имя для изображения, путь к Dockerfile (в нашем случае, внутри каталога Docker ), и сообщите Anbible через параметр состояния, следует ли изображение настоящее время , отсутствующий или построить Отказ

Итак, давайте добавим следующий контент для main.yml Playbook:

    ...
    - name: Build Docker image from Dockerfile
      docker_image:
        name: web
        path: docker
        state: build

С этой фотографией вы построили только новые Веб изображение Но это изображение никогда не работает. Вам нужно добавить еще одну задачу в PlayBook для его запущения. Укажите имя изображения, путь к параметрам состояния DockerFile и использует, чтобы сообщить однозначное изображение должно быть запущено (через Бег ). Используйте новейшее изображение, пометив его имя с помощью : последние Отказ PlayBook должен выглядеть так:

---
- hosts: webserver
  remote_user: remote_username
  become: yes
  become_method: sudo
  tasks:
    - name: Install pip
      apt: name=python-pip state=present
      
    - name: install docker-py
      pip: name=docker-py
      
    - name: Build Docker image from Dockerfile
      docker_image:
        name: web
        path: docker
        state: build
        
    - name: Running the container
      docker_container:
        image: web:latest
        path: docker
        state: running

Теперь добавьте задачу, чтобы проверить, работает ли новый контейнер отлично на сервере. Эта задача работает Docker PS на сервере.

Наконец, ваш PlayBook стал:

    ---
    - hosts: webserver
      remote_user: linx
      become: yes
      become_method: sudo
      tasks:
        - name: Install pip
          apt: name=python-pip state=present
      
        - name: install docker-py
          pip: name=docker-py
      
        - name: Build Docker image from Dockerfile
          docker_image:
            name: web
            path: docker
            state: build
        
        - name: Running the container
          docker_container:
            image: web:latest
            path: docker
            state: running
            
        - name: Check if container is running
          shell: docker ps

Наш несмешной Playbook теперь готов к использованию.

Шаг 3 — Запуск PlayBook

Запустите PlayBook, используя следующую команду на вашей рабочей станции:

ansible-playbook -i hosts main.yml --ask-become-pass

Теперь вы предлагаете ввести удаленный пароль пользователя Sudo.

Чтобы проверить, отлично работает ли ваш веб-сервер контейнера, введите:

curl your_server_ip:your_docker_port

Это должно вернуть страницу по умолчанию NGINX, созданную DockerFile.

Default page. Nginx is in your container. 

Заключение

В этой статье вы построили и развернули контейнер, используя Docker с помощью Anbible. Теперь вы можете автоматизировать развертывание контейнеров с помощью Anbible. Вы можете использовать Anisible Playbook в этом руководстве, чтобы развернуть любой вид контейнера Docker на вашем сервере. Вам нужно только предоставить свой собственный DockerFile.

Оригинал: «https://www.codementor.io/@mamytianarakotomalala/how-to-deploy-docker-container-with-ansible-on-debian-8-mavm48kw0»