Запустите ansible playbook из контейнера Docker и разверните его на хост-компьютере. - PullRequest
0 голосов
/ 03 ноября 2018

Я бы хотел запустить ansible playbook на моем локальном компьютере, используя ansible из контейнера Docker. Вот как выглядит мой Ansible Dockerfile:

FROM alpine:3.6

WORKDIR /ansible

RUN apk update \
    && apk add ansible

ENTRYPOINT ["ansible-playbook"]

playbook.yml:

---
- hosts: localhost
  roles:
  - osx

Роли / OSX / задачи / main.yml

---
- name: Welcome
  shell: echo "Hello"
  when: ansible_distribution == 'MacOSX'

Затем я запускаю его с:

docker build -t ansible_image:latest .
docker run --rm --network host \
-v $(pwd):/ansible \
ansible_image:latest ansible/playbook.yml

Моя главная операционная система - OS X. Я ожидаю, что роль osx будет выполнена, однако похоже, что playbook запускается на альпийском контейнере. Я хотел бы спросить, как указать ansible в Docker для развертывания содержимого на моей локальной машине?

1 Ответ

0 голосов
/ 03 ноября 2018

Ваша книга воспроизведения нацелена на localhost:

---
- hosts: localhost
  roles:
  - osx

Это означает, что Ansible собирается нацелиться на локальный компьютер (который скажем, ваш Ansible контейнер) при запуске playbook. Ansible это предназначен для применения игровых книжек к удаленным компьютерам, как правило, подключаясь к ним используя ssh. Предполагая, что это возможно подключитесь из вашего Ansible контейнера к вашему хосту, используя ssh, вы может просто создать соответствующий файл инвентаризации, а затем нацелить ваш playbook соответственно:

---
- hosts: my_osx_host
  roles:
  - osx

Если вы только начинаете с Ansible, вы можете начать с документ Getting Started и продолжайте свой путь оттуда. На этом сайте вы найдете документацию, которая поможет вам создать файл инвентаризации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...