Anton
Anton
Ребят, помогите пофиксить плиз
Anton
- hosts: all user: root sudo: yes tasks: - name: Add repository yum: name={{item}} state=installed with_items: - epel-release - http://rpms.remirepo.net/enterprise/remi-release-7.rpm - yum-utils - name: Enable yum-config-manager command: yum-config-manager --enable remi-php72 - name: Install php72 yum: name={{item}} state=installed with_items: - php72 - php72-php-fpm - php72-php-gd - php72-php-json - php72-php-mbstring - php72-php-mysqlnd - php72-php-xml - php72-php-xmlrpc - php72-php-opcache - name: Create symlink /bin/php72 to /bin/php file: src: /bin/php72 dest: /bin/php state: link
Grek 🇺🇦
set_fact: должен быть в тасках, разве нет?
Grek 🇺🇦
почему не объявить их в переменных?
Wadik
set_fact: должен быть в тасках, разве нет?
возможно. Я их верчу кручу по всему playbook и везде ему все не так
Sergey
ещё доку можно почитать
Sergey
Там указано, что set_fact - это модуль.
Sergey
А вызовы модулей располагаются во вполне определённых местах.
Wadik
ещё доку можно почитать
https://docs.ansible.com/ansible/latest/modules/set_fact_module.html читаю тут и в examples я не поймо почему перед set_fact знак минуса ставится. Если его убрать пишет что синтаксис не верный , если делаю с ним - переменная не определена
Wadik
как в доке показано , так и ставил
Wadik
или это как по другому работает , не пойму ?
Anastasia
или это как по другому работает , не пойму ?
"минусами" вы отделяете один модуль от другого, если можно так выразиться. Это особенности синтаксиса. set_fact - это модуль
Wadik
ухххх... Как будто ЕГЭ сдаю
Wadik
снова
Wadik
https://pastebin.com/Mpn0zGkv
Grek 🇺🇦
у вас определение фактов идет после их использования
Wadik
https://pastebin.com/Mpn0zGkv
Получилось. Вверх поднял set_fact и заработало
Grek 🇺🇦
но Вам бы еще уйти от lineinfile, и перейти на template + variables
Aleksey
"минусами" вы отделяете один модуль от другого, если можно так выразиться. Это особенности синтаксиса. set_fact - это модуль
навеяло: да разве это креститик? это маленькая буква "х" ) минусы означают элемент списка
Aleksey
да, вы правы. Я пыталась сформулировать попроще))
да, согласен. судя по "простыне" у вас очень сложная задача)
Wadik
но Вам бы еще уйти от lineinfile, и перейти на template + variables
не знаю что это ,но поизучаю. Но пока добью то что задумал
Wadik
подскажите, такое будет работать https://pastebin.com/2Zex3aRh так как я задумал. А то проверить пока нету возможности
Anastasia
не будет
Wadik
не будет
а какие тут есть варианты ?
Anastasia
а какие тут есть варианты ?
для начала - почитать документацию. Для конца, если в упор, то вызвать модуль трижды
Wadik
"{{ proxies_by_gateway[gateway] | default(proxy_default) }}" - а как это дело называется, что бы понять что искать для изучения , как составлять и т.д
🐷
это jinja pipes
🐷
или еще filters
🐷
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html
Aleksey
Господа я где-то видел фильтр to_toml а чот не могу сейчас найти его. Поделитесь кто пользуется плиз
Aleksey
а. вот же оно. https://galaxy.ansible.com/sivel/toiletwater
Aleksey
можно было еще сильнее зашифроват название
Wadik
https://pastebin.com/PzVaNpSU
Подскажите, почему выдает ошибку - The error was: 'dict object' has no attribute 'gateway' , если убрать | default(proxy_default)}} в set_fact. В документации внятного ответа не увидел
Wadik
О том что переменная gateway не определена
Wadik
типо нечего подставлять
Dmitry
Скажите, вот у меня есть syncronize с одной машины на много. С ростом числа этого много, очевидно, растет и время синхронизации, что очень критично. Ядер я доброшу в эту виртуалку, но в целом это немного тупиковый путь. Из бредовых идей пока синкать на десяток машин, а потом с них уже на остальные. Может какой-то более оптимальный путь...
Sergey
О том что переменная gateway не определена
Почти так. Сообщение это - о том, что атрибут 'gateway' у словаря не определён. А это значит, что ты ещё и обращаешься к элементу словаря не по ключу (то есть ['gateway']), а как к свойству объекта (.gateway). Ты не хочешь так делать (джедайский пасс руками).
Aleksey
https://www.serf.io/
однако потребует внимательного подхода. и трезвого понимания что именно хочется.
Aleksey
уровень senior+
Dmitry
https://www.serf.io/
ну вот я не понял, как он поможет именно файлы разложить
Dmitry
вообще мне щас пришла идея... ивертировать где запускается рсинк блин... очевидное решение
Aleksey
это тоже путь в никуда. ибо упрешься в полосу
Dmitry
ну вряд ли... с интерфейсами все хорошо, запас приличный даст, а там надеюсь и до оркестрации дойдем или вообще этот монолит кода сгинет
Aleksey
ну дело ваше.
Full
Народ, вопрос по конструкции register: result until: чегототам Я могу сделать, например until: result.changed Это ок, и все понятно - я поглядел в result, и там есть "changed": true. А вот как работает такое? until: result is not failed Как понять, на что оно реагирует? Этого всего "ok", "skipped", "fatal" - в result я такого не вижу.
Dmitry
https://docs.ansible.com/ansible/latest/user_guide/playbooks_error_handling.html#controlling-what-defines-failure
Full
Это немного не то.
Anton
Рябят , помогите пожалуйста , нужно добавить добавление домена в сетевой интерфейс с помощью плейбука. Плейбук пинается джобой. В джобе указал "выбор домена". Плейбук смог написать, но с конкретным доменом. Как правильно указать переменную в плейбуке, чтобы при выборе домена в джобе, плебук срабатывал на этот домен.
Anton
--- - hosts: all user: root sudo: yes tasks: - name: add string file network lineinfile: path: /etc/sysconfig/network-scripts/ifcfg-enp0s3 regexp: '^DOMAIN=' line: DOMAIN="stg-kh.btr" - name: restart network service: name=network state=restarted
Sheridan
кек, а йамловцы не без юмора ребята :) https://yaml.org/
Wadik
Почти так. Сообщение это - о том, что атрибут 'gateway' у словаря не определён. А это значит, что ты ещё и обращаешься к элементу словаря не по ключу (то есть ['gateway']), а как к свойству объекта (.gateway). Ты не хочешь так делать (джедайский пасс руками).
в голове у меня такая картина: ['gateway'] - Глобальная переменная. Смотрим ее значение на каждом хосте {{proxy_by_gateway['gateway']}} - подставляем значение и сравниваем со списком proxies_by_gateway: "10.0.10.1": 10.0.10.1 "10.0.20.1": 10.0.20.2 "10.0.30.1": 10.0.40.4 если находим значение в левой части , то берем в этой же строке правую часть и подставляем вместо нашей переменной proxy_server В документации только нашел что default нужно на тот случай , если не чего не будет найдено то будет применяться значение по умолчанию, что бы ошибок не было
Dmitry
ну т.е. асинхронно нельзя 😉
Sheridan
время синхронизации
огранич количество потоков ансиблю
Dmitry
огранич количество потоков ансиблю
ну в смысле, время ансибля тоже важно... т.е. оба значения важны 😉
Sheridan
аа
Dmitry
так то понятно, серии поставил бы и радовался
Sheridan
ну да, торрент выглядит норм
Dmitry
торрент интересно, конечно... немного заморочено хотя.. это нужно как-то замкнутую сеть пиров организовать
k
торрент интересно, конечно... немного заморочено хотя.. это нужно как-то замкнутую сеть пиров организовать
Серьезно, раздавайте торрентом, а в ansible ждите появления артефакта на всех хостах Это проще, чем звучит :) У вас нет внутренней сети? А хостов много, артефакт большой?
Albert
Пробовали?
Dmitry
fork + strategy: free
free не подходит, там все синхронно должно быть, это деплой
Albert
Ну фри не обязательно
Albert
Важно количество форков поднять