Iwan
Всем привет, знаю не по правилам спрашивать такое.
Нормально ли будет сделать деплой с помощью ансибла который будет запускать docker-compose?
Андрей
а почему нет?
Iwan
а почему нет?
Спрашиваю потому, что мало примеров в инете поэтому поводу..
Отделение Bereke Bank
Iwan
Gordon
Кто-нибудь сталкивался с таким?
Sergey
кириллица? 😃
Gordon
Вот по такой конструкции :
copy: src={{ var-path-1 }}/{{ item.file }} dest={{ item.dest }} mode=0777
with_items:
- { file: ‘file-1’, dest: ‘path-1’ }
Андрей
mode:0777 - прям вот бэстпрактис и безопасностью запахло))
Gordon
Ахах)) да я ради забавы поменял )
Gordon
В этом примере только такой мод ))
Gordon
Разобрался, почему-то не находит файлы (( хотя путь корректный
Gordon
Sergey
Sergey
Пиши нормальный YaML.
Sergey
Gordon
Alex
Sergey
Подскажите плиз, пытаюсь использовать ansible inventory plugin aws_ec2, но вместо информации об инстансах указанного в .yml региона получаю список инстансов региона который задан по умолчанию в aws configure. Мне нужно несколько профилей под каждый регион создавать или я что то неверно понимаю?
Или как второй вариант, инвентори модуль игнорируется и плейбук работает с дефолтными значениями из окружения.
Т.к фильтр по машинам работает только внутри задач, а не на уровне инвентори, что странно
tutunak
tutunak
ansible.cfg как то так настроен
[defaults]
# Use the YAML callback plugin.
stdout_callback = yaml
# Use the stdout_callback when running ad-hoc commands.
bin_ansible_callbacks = True
roles_path = ./roles/
display_skipped_hosts = yes
gather_timeout=20
inventory = aws_ec2.yml
retry_files_enabled = False
command_warnings=False
callback_whitelist = profile_tasks, timer, yaml
log_path=ansible.log
[inventory]
enable_plugins = aws_ec2
Vitaly
Так, а в чем вопрос то?
Гайрат
Alex
А что нужно?
при делегировании иметь возможность получить имя хоста, на котором выполняется таск
Sergey
tutunak
Гайрат
Lamobot
Lamobot
И используется ли delegate_facts ?
Sergey
Почистил.
Lamobot
Sergey
Sergey
Ты же внимательно прочитал?
Sergey
ansible_hostname vs ansible_host
Sergey
Alex
Это какой хост? Который в delegate_to ? Или на котором выполняется сам таск?
delegate_facts не использую
- name: master
delegate_to: app_master
setup:
- name: master
delegate_to: app_master
debug: msg="ansible_hostname={{ ansible_hostname }}"
- name: master
delegate_to: app_master
debug: msg="ansible_host={{ ansible_host }}"
- name: slave facts
delegate_to: app_slave
setup:
- name: slave
delegate_to: app_slave
debug: msg="ansible_hostname={{ ansible_hostname }}"
- name: slave
delegate_to: app_slave
debug: msg="ansible_host={{ ansible_host }}"
вроде правильно отрабатывает
Alex
получаю
TASK [master] ***
ok: [127.0.0.1 -> 35.205.xxx.xxx] =>
msg: ansible_hostname=itests-e0f3-master
TASK [master] ***
ok: [127.0.0.1 -> 35.205.xxx.xxx] =>
msg: ansible_host=35.205.xxx.xxx
TASK [slave facts] ***
ok: [127.0.0.1 -> 35.203.xxx.xxx]
TASK [slave] ***
ok: [127.0.0.1 -> 35.203.xxx.xxx] =>
msg: ansible_hostname=itests-e0f3-slave
TASK [slave] ***
ok: [127.0.0.1 -> 35.203.xxx.xxx] =>
msg: ansible_host=35.203.xxx.xxx
Aleksey
Всем привет, подскажите как правильно обвернуть команду
command: docker exec {{ mongo_container_name }} mongo meteor --eval "rs.initiate({ id: 'rs0', members: [ { id: 0, host: 'localhost:27017' } ]})" как правильно экранировать в этой команде
Sergey
Sergey
Используешь инструмент неподобающим образом.
Sebor▂▅▇█▓▒░
и снова башсибл
Sebor▂▅▇█▓▒░
Alexander
Oleksandr
как это не существует? :) - https://docs.ansible.com/ansible/latest/modules/docker_container_module.html
Gordon
Друзья, кажется нашел аномалию, скрипт выполненный от рута через ансибл модуль и аналогично локально на машине, приводит к разным результатам.. просто как так (((
Gordon
Т.е. shell: bash install.sh и непосредственно в терминале sudo bash install.sh это 2 разных результата
Oleg
проверь разницу между переменными среды окружения
Gordon
Anton
env
Gordon
а где разница должна быть, одна и та же машина .. один и тот же юзер ?
Gordon
Oleg
И это никак не исправляется?)
если скрипт требует каких-то специфических переменных, частый пример http_proxy, это предусматривается в плейбуке
Gordon
Gordon
Oleg
Как это можно в самом скрипте проверить?
я тут вангую и фантазирую.
а у тебя есть скрипт который не так работает в разных обстоятельствах.
добавь в него env > /tmp/env-`date +%s `
и сравни файлы /tmp/env-* которые будут в выводе.
Gordon
Sergey
Gordon
Ivan
Парни, я извиняюсь, но тупой вопрос, который я никак не могу решить.
Пытаюсь использовать iptables_raw, но таски не хотят выполняться. Ошибка:
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.
- name: Head iptables rules
^ here
Роль:
- hosts: all
become: yes
roles:
- ome.iptables_raw
- common # << firewall here
- cloudalchemy.node-exporter
Таска:
- name: Head iptables rules
iptables_raw:
state: '{{ (firewall_head_rules != "" ) | ternary("present", "absent") }}'
name: head
weight: 10
keep_unmanaged: '{{ firewall_keep_unmanaged }}'
rules: '{{ firewall_head_rules }}'
Gordon
Gordon
В общем PATH у меня одинаковый, но вот что нашел по этой проблеме
Gordon
Sergey
Кто то использует aws_ec2 inventory plugin? Не могу понять почему игнорируется инвентори при запуске, всегда лезет искать регион в конфиге, а не в инвентори, попробовал закомментировать строчку с регионом в конфиге - и в таске и в инвентори пытаюсь сделать запрос к региону, ансибл ругается что регион не задан О _о
причем ansible-inventory проверяя инвентори верно отображает данные, а с плейбуками игнорируется
что так
plugin: aws_ec2
regions:
- ap-northeast-2
filters:
"tag:Name":
что так
- name: get instance info
ec2_instance_info:
region: ap-northeast-2
filters:
availability-zone: ap-northeast-2a
instance-state-name: [ "running"]
Gordon
Aleksandr
Господа, а кто-нибудь уже решал задачу с фаерволом и докером запущенным на хосте? а то решение рестартовать сервис докера после применения правил фаервола, такое себе
Sergey
Ivan
Yury
Я пишу их в DOCKER-USER с указанием внешнего интерфейса. Вроде норм работает)
Ivan
Мысли на тему https://unrouted.io/2017/08/15/docker-firewall/
Gordon
ребята, а как-то pwd можно передать ансиблу? Т.е. чтобы запуск происходил из pwd определённой директории
Sergey