docker_machine

Управление Docker Machine

Ansible-роль для управления машинами Docker Machine.

  • Установка Docker Machine
  • Создание Docker Machine для каждого целевого хоста в инвентаре
  • Поиск и замена в конфигурационном файле docker machine config.json для изменения директории хранения

Вы можете увидеть пример создания плейбука, конфигурации и команд здесь: https://github.com/winggundamth/ansible-wing-playbook

Примечания

  • Эта роль будет выполнять команду docker-machine на локальной машине
  • Имя целевой машины в файле инвентаря будет именем машины в docker-machine ls
  • Путь по умолчанию для хранения Docker Machine будет в files/docker-machine плейбука. Вы можете изменить его через переменную docker_machine_storage_path
  • Эта роль предназначена для условного выполнения, поэтому в плейбуке вам нужно настроить переменную для конкретной задачи. Пример можно увидеть в секции Пример плейбука
    • Установите переменную docker_machine_create в true, чтобы выполнить создание docker-machine
    • Установите переменную docker_machine_manage_config в true, чтобы выполнить поиск и замену в конфигурационном файле docker machine

Требования

  • Вам нужно иметь возможность подключаться к целевому хосту по SSH с помощью SSH-ключа

Переменные роли

# Это значения по умолчанию
docker_machine_create: false
docker_machine_manage_config: false
docker_machine_install_version: 0.7.0
docker_machine_install_url: https://github.com/docker/machine/releases/download/v{{ docker_machine_install_version }}/docker-machine-{{ ansible_system }}-{{ ansible_architecture }}
docker_machine_install_path: /usr/local/bin/docker-machine
docker_machine_install_checksum: md5:bf73bbfee97fad04d3ff20151b1847fa
docker_machine_storage_path: "{{ playbook_dir }}/files/docker-machine"
docker_machine_config_file: "{{ docker_machine_storage_path }}/machines/{{ inventory_hostname }}/config.json"
docker_machine_config_variables:
  - { regexp: '"StorePath": "(.*)",$', replace: '"StorePath": "{{ docker_machine_storage_path }}",' }
  - { regexp: '"StorePath": "(.*)"$', replace: '"StorePath": "{{ docker_machine_storage_path }}/machines/{{ inventory_hostname }}"' }
  - { regexp: '"CertDir": "(.*)",$', replace: '"CertDir": "{{ docker_machine_storage_path }}/certs",' }
  - { regexp: '"CaCertPath": "(.*)",$', replace: '"CaCertPath": "{{ docker_machine_storage_path }}/certs/ca.pem",' }
  - { regexp: '"CaPrivateKeyPath": "(.*)",$', replace: '"CaPrivateKeyPath": "{{ docker_machine_storage_path }}/certs/ca-key.pem",' }
  - { regexp: '"ServerCertPath": "(.*)",$', replace: '"ServerCertPath": "{{ docker_machine_storage_path }}/machines/{{ inventory_hostname }}/server.pem",' }
  - { regexp: '"ServerKeyPath": "(.*)",$', replace: '"ServerKeyPath": "{{ docker_machine_storage_path }}/machines/{{ inventory_hostname }}/server-key.pem",' }
  - { regexp: '"ClientKeyPath": "(.*)",$', replace: '"ClientKeyPath": "{{ docker_machine_storage_path }}/certs/key.pem",' }
  - { regexp: '"ClientCertPath": "(.*)",$', replace: '"ClientCertPath": "{{ docker_machine_storage_path }}/certs/cert.pem",' }

# Это необязательные переменные
docker_machine_extra_parameters: --engine-registry-mirror https://registry-mirror.example.com

Зависимости

Нет

Пример плейбука

- hosts: all
  connection: local
  gather_facts: yes
  become: false
  roles:
    - role: winggundamth.docker_machine
      docker_machine_create: true
      docker_machine_manage_config: true
  vars_files:
    - "{{ docker_machine_vars_file }}"

Список полезных тегов

Есть несколько полезных тегов, которые можно использовать для управления Docker Machine

  • docker-machine-create (необходимо установить переменную docker_machine_create в true)
  • docker-machine-install (необходимо установить переменную docker_machine_create в true)
  • docker-machine-manage-config (необходимо установить переменную docker_machine_manage_config в true)

Лицензия

MIT

Информация об авторе

Вы можете увидеть мои работы на https://github.com/winggundamth

О проекте

Ansible role to manage machines for Docker Machine

Установить
ansible-galaxy install opsta/ansible-docker_machine
Лицензия
mit
Загрузки
572
Владелец
We build scale