George
это как минимум забавно )
Антон
хотя можно же рулить докером по сети, значит по идее даже без прокидывания сокета можно обойтись
Антон
ну да, всегда лучше иметь в загашнике пару тройку фокусов
George
несомненно
Антон
но вопрос с последней версией остается =))
Отделение Bereke Bank
Отделение Bereke Bank
ну? получаешь последнюю версию
Отделение Bereke Bank
а блин там 1.18 😑
Антон
V
ребят а как можно notify handler вызвать который в роли определен, а то у меня конфиг не поменялся а перезагрузить всю групу надо
Антон
Попозже скину
V
- meta: flush_handlers
а как это в командной строке в ansible-playbook написать ?
Михаил Telsir
а как это в командной строке в ansible-playbook написать ?
Прописывается в роли. Принудительный запуск ВСЕХ хэндлеров, которые были вызваны ДО меты. Хэндлеры запустятся сразу, а не в конце плея
V
да ну это как то не правильно
V
обычным raw тогда уж
Михаил Telsir
Эмм, зачем ?
V
тоесть мне открыть файл добавить эту строку запустить и потом удалить?
Михаил Telsir
Наркоман ?
V
я имею ввиду через raw вызвать рестарт будет правильнее чем meta добавлять одноразовое
V
Наркоман ?
Михаил ну серьезно спрашиваю, роль не хочу менять и добавлять туда, а как meta вызвать в командной строке не знаю
Михаил Telsir
а чего ad-hoc не использовать, через service или systemd ?
Vladislav 👻
ретрай механизм тоже не умеет подобное
Vladislav 👻
поэтому проще либо руками дернуть, либо дописать логику в роль
V
роль поддерживает только через изменения файла
Alex
Не кто не в курсе в ansible.cfg задаеться ли указание относительных путей для template - у меня указано только: inventory = ./hosts/servers roles_path = ./roles тут все хорошо - но когда выполняешь плейбук например например (нижу указано) - name: copy config become: true template: src: 123.conf.j2 dest: /root/123.conf ансибле не находит 123.conf.j2 - хотя он там есть (структура роли правильная) - читал ансибл нужно прописывать запуск роли вот в таком виде - но это не помогло - name: setup role deploy hosts: all-servers roles: - { role: deploy, tags: [ 'deploy' ] } все остальное ансибл выполняет
Alex
python3-pip, по-твоему, что ставит?
факт есть факт компоуз не посатвился через этот pip3)
Alex
- name: gitlab | install docker-compose pip: name: "{{ item }}" executable: "pip3" loop: - docker-compose а в чем хумор в loop указывать один элемент? почему не просто name: docker-compose
Alex
Alex
Покажи структуру
не первый день роли пишу - но что то сейчас потерялся - просто деплой делаю уже через контейнер в связке с gitlabom
Alex
то есть создание директорий - выполнения комманд - создание сети в докере - ансибл выполняет - но копирование нет
Михаил Telsir
а у тебя роль вообще вызывается ?
Alex
server-deploy
Alex
просто можно конечно как то с полными путями template: src: 123.conf.j2 но это не правильно в cfg а задал [defaults] remote_user = root inventory = ./hosts/servers roles_path = ./roles все должно работать - но нет
Alex
разобрался - досадная ошибка - директория обязательно должна называться templates - при этом в yml прописываем template (если templates - то не работает) template: src: 123.conf.j2
Anonymous
Всем добрый день! Подскажите пожалуйста, а с помощью динамического инвентори ( AWS inventory plugin, если конкретней) вообще возможно на уровне инвентори добавить конкретному хосту переменную? Т.е. а-ля сделать аналог host1: ansible_host: blablabla custom_var: value
Антон
Хорошо
- name: gitlab | install soft apt: update_cache: yes name: "{{ packages }}" state: present vars: packages: - apt-transport-https - ca-certificates - curl - gnupg2 - software-properties-common - git - python3-setuptools - htop - name: gitlab | add repo key - nginx, docker apt_key: url: "{{ key_url }}" state: present loop_control: loop_var: key_url loop: - http://nginx.org/keys/nginx_signing.key - https://download.docker.com/linux/ubuntu/gpg - name: gitlab | add repo - nginx, docker apt_repository: repo: "{{ item.rep_url }}" state: present filename: "{{ item.ans_filename }}" loop: - { rep_url: 'deb http://nginx.org/packages/mainline/ubuntu/ {{ ansible_distribution_release }} nginx', ans_filename: nginx} - { rep_url: 'deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable', ans_filename: docker} - name: gitlab | install soft apt: name: "{{ packages }}" state: present update_cache: yes vars: packages: - nginx - docker-ce - docker-ce-cli - containerd.io - name: gitlab | get docker-compose latest release uri: url: https://api.github.com/repos/docker/compose/releases/latest return_content: yes register: releases_tag - name: gitlab | get docker-compose sha256 checksum uri: url: "https://github.com/docker/compose/releases/download/{{ releases_tag['json']['tag_name'] }}/docker-compose-Linux-x86_64.sha256" return_content: yes register: releases_checksum - name: gitlab | download docker-compose latest release get_url: url: "https://github.com/docker/compose/releases/download/{{ releases_tag['json']['tag_name'] }}/docker-compose-Linux-x86_64 " dest: /usr/local/bin/docker-compose mode: '+x' checksum: sha256:"{{ releases_checksum.content.split(' ')[0] }}"
Антон
даже с проверкой чексуммы
George
даже с проверкой чексуммы
Это несомненно необходимо 👍
Антон
Это несомненно необходимо 👍
ну тролить то за что =(
George
Это не троллинг. Это признание заслуг
Антон
Антон
спасибо
Anonymous
Родион будет жить. Поприветствуем!
Lamobot
- name: gitlab | install soft apt: update_cache: yes name: "{{ packages }}" state: present vars: packages: - apt-transport-https - ca-certificates - curl - gnupg2 - software-properties-common - git - python3-setuptools - htop - name: gitlab | add repo key - nginx, docker apt_key: url: "{{ key_url }}" state: present loop_control: loop_var: key_url loop: - http://nginx.org/keys/nginx_signing.key - https://download.docker.com/linux/ubuntu/gpg - name: gitlab | add repo - nginx, docker apt_repository: repo: "{{ item.rep_url }}" state: present filename: "{{ item.ans_filename }}" loop: - { rep_url: 'deb http://nginx.org/packages/mainline/ubuntu/ {{ ansible_distribution_release }} nginx', ans_filename: nginx} - { rep_url: 'deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable', ans_filename: docker} - name: gitlab | install soft apt: name: "{{ packages }}" state: present update_cache: yes vars: packages: - nginx - docker-ce - docker-ce-cli - containerd.io - name: gitlab | get docker-compose latest release uri: url: https://api.github.com/repos/docker/compose/releases/latest return_content: yes register: releases_tag - name: gitlab | get docker-compose sha256 checksum uri: url: "https://github.com/docker/compose/releases/download/{{ releases_tag['json']['tag_name'] }}/docker-compose-Linux-x86_64.sha256" return_content: yes register: releases_checksum - name: gitlab | download docker-compose latest release get_url: url: "https://github.com/docker/compose/releases/download/{{ releases_tag['json']['tag_name'] }}/docker-compose-Linux-x86_64 " dest: /usr/local/bin/docker-compose mode: '+x' checksum: sha256:"{{ releases_checksum.content.split(' ')[0] }}"
https://docs.ansible.com/ansible/latest/modules/apt_module.html When used with a loop: each package will be processed individually, it is much more efficient to pass the list directly to the name option.
Антон
поправил, может кому пригодиться
Alex
Может кто поделиться опытом использования ansible с python3? Есть ли какие то подводные камни/ограничения? Или если на машине есть 2 и 3, то лучше всегда использовать 3ку
Vladislav 👻
юзаю на 3.7 - полет отличный
inqfen
наоборот на 2 в 2.8 уже есть нерабочие модули
Alex
в смысле в ансибл 2.8 некоторые модули не работают на 2м питоне?
inqfen
ага
inqfen
Пару встречал
inqfen
Ну как бы 2 питон уже почти все
inqfen
Даже в 10 дебиане уже 3 по умолчанию
Alex
- name: gitlab | install soft apt: update_cache: yes name: "{{ packages }}" state: present vars: packages: - apt-transport-https - ca-certificates - curl - gnupg2 - software-properties-common - git - python3-setuptools - htop - name: gitlab | add repo key - nginx, docker apt_key: url: "{{ key_url }}" state: present loop_control: loop_var: key_url loop: - http://nginx.org/keys/nginx_signing.key - https://download.docker.com/linux/ubuntu/gpg - name: gitlab | add repo - nginx, docker apt_repository: repo: "{{ item.rep_url }}" state: present filename: "{{ item.ans_filename }}" loop: - { rep_url: 'deb http://nginx.org/packages/mainline/ubuntu/ {{ ansible_distribution_release }} nginx', ans_filename: nginx} - { rep_url: 'deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable', ans_filename: docker} - name: gitlab | install soft apt: name: "{{ packages }}" state: present update_cache: yes vars: packages: - nginx - docker-ce - docker-ce-cli - containerd.io - name: gitlab | get docker-compose latest release uri: url: https://api.github.com/repos/docker/compose/releases/latest return_content: yes register: releases_tag - name: gitlab | get docker-compose sha256 checksum uri: url: "https://github.com/docker/compose/releases/download/{{ releases_tag['json']['tag_name'] }}/docker-compose-Linux-x86_64.sha256" return_content: yes register: releases_checksum - name: gitlab | download docker-compose latest release get_url: url: "https://github.com/docker/compose/releases/download/{{ releases_tag['json']['tag_name'] }}/docker-compose-Linux-x86_64 " dest: /usr/local/bin/docker-compose mode: '+x' checksum: sha256:"{{ releases_checksum.content.split(' ')[0] }}"
Спасибо 👍 - супер
Ivan
Привет! А как в ансибле что-то сделать на основе контента файла? Допустим, в файле версия пишется или ещё флаг какой-то
Daniel
можно модификаторы из шаблонов применять и регулярками вырезать из одной переменной в другую. есть еще set_facts - полученное значение станет фактом хоста
Daniel
вопрос к тем, кто юзает icinga2 для мониторинга. как вы делали deploy конфигов, чтобы они применились?
Aleksey
Cat это башсибл
Ivan
show me what u've got
Aleksey
модуль slurp
Отделение Bereke Bank
Ну как бы 2 питон уже почти все
Будет странно, если ансибл на 2-м питоне превратится в тыкву, учитывая что RHEL7 будет жить ещё 5 лет 😑 оба продукта то редхатовские
Sergey
вопрос к тем, кто юзает icinga2 для мониторинга. как вы делали deploy конфигов, чтобы они применились?
Дык master-slave жи, катишь на мастер, потом рестарт - и само разъехалось.