Lamobot
Alex
тогда еще как вариант
- name: Test
set_fact:
distrib: "{{ distrib | d([]) + [item] }}"
loop: "{{ example }}"
when: template in item
register: res
- debug: msg="{{ (res.results | last)['ansible_facts']['distrib'] }}"
Alex
без json_query
Alex
Denis
я сейчас может странное спрошу: ансибл из пип’а пропал? 2.9.9 у меня ещё из пипа стоит
Denis
Denis
апгрейдом - да инсталлится новая версия
George
https://pypi.org/project/ansible/#description
George
Тут все есть, врут, черти ?
George
@tnt4brain в чем разница между ансиблом и redhat ansible engine ?
George
Никто же ведь вторым не пользуется
Sergey
👀
Отделение Bereke Bank
George
Хз
George
Типа стабильная штука на базе ансиболи
Отделение Bereke Bank
Так куда ещё стабильнее?)
Отделение Bereke Bank
Хотя не. С проблемы с openssl модулями на центоси в свое время у меня сильно горела жепа
George
Sergey
В 2.10 же кучу всего повыкидывали, а в поддерживаемой версии всё выброшенное есть искаропки.
Alex
@tnt4brain
tranfer_method - а какие вообще значения есть и чем они отличаются? В доке что то не нашел
Sergey
В статье ссылка
Sergey
Alex
Ну исходники так себе ссылка
Alex
Описание опций и для чего кпждый из параметров
Alex
А не делать предположения и дргадки на основе исходников
George
Alex
Чета ржу
И не говори - документация для слабаков :D
Alex
Тру админы сразу читают исходники
George
@tnt4brain няштяк - пайплайн ci/cd на ансибле
George
https://zuul-ci.org/docs/zuul/tutorials/quick-start.html
Sebor▂▅▇█▓▒░
Ахонь же!
Yks
Что же можеть быть не так?
{"msg": "The task includes an option with an undefined variable. The error was: 'str object' has no attribute 'user' . . .
- name: Add users.
user: name={{ item.user }} shell=/bin/bash append=yes groups={{ item.groups|default(omit) }}
register: add_users_register
loop:
- "{{ ssh_deployers|default([]) }}"
- "{{ ssh_admins|default([]) }}"
- "{{ ssh_users|default([]) }}"
Должен по идее дефолт отрабатывать
Я и твой кот
Я и твой кот
Для CI я ничего лучше не видел.
Sergey
Vadim
A
Sergey
Николай
Владимир
Подскажите, пожалуйста:
При деплоии node exporter на какой нибудь инстанс, как мне рассказать мониторинг хосту, что с того инстанса надо скрапить метрики?
George
чо
George
прометеус подключить
George
я вообще просто в конфиг прометеуса затаскивал айпишники группы узлов
Lamobot
George
prometheus_targets:
node:
- targets:
"{{ groups['monitoring'] | map('extract', hostvars, ['ansible_host']) | map('regex_replace', '$', ':9100') | list }}"
labels:
env: monitoring
George
примерно так
Lamobot
Владимир
спасибо
Max
Всем привет.
Можно ли в плейбуках использовать * в пути назначения?
суть - надо положить конфиг в профиль firefox. при каждой инсталляции имя профиля firefox меняется. поэтому хочется писать путь как /home/user/.mozilla/*.default-default
не хочу хардкодить имя профиля в плейбуку, чтобы плейбука была обобщённая и раскатывать всё одним движением руки
в bash и sh это работает
sh-4.4# ls /home/monitoring/.mozilla/firefox/*.default-default/prefs.js
/home/monitoring/.mozilla/firefox/q7zsbkhi.default-default/prefs.js
а в ансибле не работает
fatal: [monitoring-pc]: FAILED! => {"changed": false, "checksum": "3a118c7c88ef61b0f3cd54098968cf360bdb67c8", "msg": "Destination directory /home/monitoring/.mozilla/firefox/*.default-default does not exist"}
таска вот такая
- name: Render Firefox config
template:
src: prefs.js.j2
dest: "/home/{{ work_user }}/.mozilla/firefox/*.default-default/prefs.js"
Elenhil
Grek 🇺🇦
Max
Grek 🇺🇦
Это влечет за собой ровно 1 таск
Max
я имел ввиду архитектурно. бывает же, что новички придумывают какие-то велосипеды, хотя есть нативные функции у приложения.
но спасибо за совет, буду реализовывать
Yks
Oleg
Привет, парни. Помогите пож-та разобраться с проблемой. Есть два идентичных сервера, софт один и тот же на борту. При запуске джоба на одном сервере все норм отрабатывает, на другом ошибка "E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)",
"E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?"
Плэйбук
- name: Install and configure ntp
hosts: habr_linux
become_user: sudo
tasks:
- name: Install ntpdate
apt:
name: ntpdate
state: present
Переменные
ansible_user: ****
ansible_ssh_private_key_file: ****
Max
Oleg
Отделение Bereke Bank
become_user: sudo это точно то что ты хочешь?
Oleg
Vadim "Oxyd"
Grek 🇺🇦
идеологически - наверное второй, а то средство автоматизации у которого нет прав это всегда костыли, но при это м стоит учитывать реалии.
Если можете сразу деплоить так чтоб у пользователя мождно было давать нужное права - деплойте.
Если это существующие хосты - выкручивайтесь указанием беком пасворд в конфиге ансибла
Вячеслав
Подскажите как команду в плейбуке описать
/usr/java/jdk1.8.0_152/bin/jcmd `pgrep -f Bootstrap` VM.unlock_commercial_features;
Использую модуль шелл, как я понимаю проблема в апострофах
Отделение Bereke Bank
загрузи скрипт со своей командой и запусти его
Вячеслав
а модульно нельзя?
Lamobot
Вячеслав
знает
Вячеслав
shell: '/bin/bash -c /usr/java/jdk1.8.0_152/bin/jcmd $(pgrep -f Bootstrap) VM.unlock_commercial_features;
Вячеслав
вот так сделал
Max
Это влечет за собой ровно 1 таск
не получается в 1 таск. как сделать в 1?
- name: Find Firefox profile path part 1
find:
path: /home/{{ work_user }}/.mozilla/firefox
file_type: directory
patterns: '*.default-default'
register: firefox_path_tmp
- name: Find Firefox profile path part 2
set_fact:
firefox_profile: "{{ item.path }}"
with_items: "{{ firefox_path_tmp.files }}"
Grek 🇺🇦
убрать
- name: Find Firefox profile path part 2
set_fact:
firefox_profile: "{{ item.path }}"
with_items: "{{ firefox_path_tmp.files }}"
и прям в таске где вы меняете файл, или что вы там делаете использовать
firefox_path_tmp.path