Павел П.
Спасибо! Наверно и правда правильнее сразу будет в плейбук писать)
Денис
с версии 2.7 вроде ансибл научился обрабатывать ошибку, когда хост unreacheble
Денис
может тоже пригодится
Павел П.
спасибо!
om
Подскажите, а есть ли модуль для обновления хостов, который умеет как apt, так и yum?
om
https://docs.ansible.com/ansible/2.5/modules/package_module.html
Спасибо. А разве он умеет обновлять установленные пакеты?
Victor
Danis
Как получить количество item'ов списка?
mertv0e
.count попробуй
mertv0e
https://docs.ansible.com/ansible/2.7/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
mertv0e
в самом начале
Joe
https://github.com/kamelotnsk/ansible_deploy Прошу помощи, example_install.yml указываю явно ставить только с тэгом ansible выполняет все таски не обращая внимания на tags
Joe
Вроде везде протэгировал
Joe
Запускаю https://github.com/kamelotnsk/ansible_deploy/blob/master/playbook/example_install.yml
Joe
https://github.com/kamelotnsk/ansible_deploy/blob/master/playbook/roles/mongodb_install/tasks/main.yml Тэги проставлял тут
Alex
Коллеги, подскажите пожалуйста, у меня локально набор пакетов в папке лежит, некоторые пакеты зависят от других в этой папке. Как бы мне все их поставить за 1 проход таска? - name: Install require packages package: name: "{{item.path}}" state: present with_items: - "{{files_matched.files}}" - {path: "cups-libs"} - {path: "cairo"}
Nklya
скопируй рсинком на хост и ставь уже там
Alex
скопируй рсинком на хост и ставь уже там
Они уже на хосте, их 40 штук в папке. Если я юзаю таск выше, он отваливается на некоторых пакетах, потому что они должны быть установлены после каких то других из папки.
Alex
ага
Alex
надо как то джоинить?
Марат
https://docs.ansible.com/ansible/latest/modules/yum_module.html name A package name or package specifier with version, like name-1.0. If a previous version is specified, the task also needs to turn allow_downgrade on. See the allow_downgrade documentation for caveats with downgrading packages. When using state=latest, this can be '*' which means run yum -y update. You can also pass a url or a local path to a rpm file (using state=present). To operate on several packages this can accept a comma separated string of packages or (as of 2.0) a list of packages.
Марат
последнее предложение
Марат
если yum конечно в других описания нет, но возможно так же
Vadim
https://github.com/ansible/ansible/blob/stable-2.7/changelogs/CHANGELOG-v2.7.rst#v2-7-1 JFYI в 2.7.1 пофиксили кучу багов и регрессий с переменными в ролях
Alex
https://docs.ansible.com/ansible/latest/modules/yum_module.html name A package name or package specifier with version, like name-1.0. If a previous version is specified, the task also needs to turn allow_downgrade on. See the allow_downgrade documentation for caveats with downgrading packages. When using state=latest, this can be '*' which means run yum -y update. You can also pass a url or a local path to a rpm file (using state=present). To operate on several packages this can accept a comma separated string of packages or (as of 2.0) a list of packages.
Не работает. Вывод такой TASK [Install require packages] ************************************************************************* failed: [localhost] (item=[u'/tmp/LibreOffice_6.1.2.1_Linux_x86-64_rpm/RPMS/*.rpm', u'cups-libs', u'cairo']) => {"changed": false, "item": ["/tmp/LibreOffice_6.1.2.1_Linux_x86-64_rpm/RPMS/*.rpm", "cups-libs", "cairo"], "msg": "No RPM file matching '/tmp/LibreOffice_6.1.2.1_Linux_x86-64_rpm/RPMS/*.rpm' found on system", "rc": 127, "results": ["No RPM file matching '/tmp/LibreOffice_6.1.2.1_Linux_x86-64_rpm/RPMS/*.rpm' found on system"]} Таск, такой - name: Install require packages yum: name: "{{item}}" state: latest with_items: - "{{LibreOffice_unarchive_dir.files[0].path}}/RPMS/*" - cups-libs - cairo
Марат
мдя
Марат
To operate on several packages this can accept a comma separated string of packages or (as of 2.0) a list of packages. это разве так переводится?
Womchik
ну формально там есть comma separated
Марат
тогда или факт собрать или захардкодить
Womchik
или shell
Марат
ну а проще list
Марат
find_module поможет наверно
Alex
ну а проще list
Ощущения что вопрос вы вообще не поняли.
Womchik
Alex
У меня есть список словарей собранный find_module, в словаре ключ с путями к пакетам и ещё 2 имени пакета из репы. Как мне из этого набора сделать comma separated list в таске?
Womchik
combine?
Womchik
set_fact
Alex
set_fact
как дополнительная переменная поможет в вопросе?
Womchik
как дополнительная переменная поможет в вопросе?
собери один список из того, что у тебя есть. нет примера под рукой. к сожалению
Alex
"{{files_matched.files}} + [ {path: cups-libs}, {path: cairo} ]" Готово, дальше что?
Марат
Ощущения что вопрос вы вообще не поняли.
а вы не умеете читать?) a comma separated string of packages OR a list of packages
Марат
И? Вопрос в том, как это сделать?
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_filters.html#list-filters
Марат
json_query
Alex
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_filters.html#list-filters
я не вдупляю, у меня уже открыто.
Марат
debug: msg: "{{ domain_definition | json_query('domain.server[?cluster==cluster1].port') | join(', ') }}"
Марат
пример похожего
Марат
может ну его?)
Alex
Незя, надо добить. Последний таск в плейбуке.
Womchik
s/добить/забить/
Alex
Так, почти готово, через map выдирать надо и потом джоинить. Теперь расширение списка осталось сделать. - name: Install require packages package: name: "{{files_matched.files + [ {path: cups-libs}, {path: cairo} ] | map(attribute='path') | join(',') }}" state: present
Alex
Накостылял двумя тасками, пофиг. Всем пятница доны!
Anton
Вечер добрый. Подскажите пожалуйста как правильно указать environment ? Код и пример сделал на Stackoverflow https://stackoverflow.com/questions/53022158/how-set-2-environment-path-and-proxy-env-in-ansible-playbook
Sergey
в extra_args любую фигню можно передать
bebebe
environment: FOO: BAR BAR: FOO
Anton
environment: PATH: "some path" environment: "{{ proxy_env }}"
Sergey
ну и опять же если речь о конкретном venv - параметр "virtualenv"
Anton
proxy_env - не имеет ключа
bebebe
там environment перееопределяется через yaml жи
Sergey
а ещё такого аргумента у модуля pip нету, к слову
Sergey
https://docs.ansible.com/ansible/2.6/modules/pip_module.html
Sergey
И гадать тут не любят, поэтому описание задачи в студию.
bebebe
а ещё такого аргумента у модуля pip нету, к слову
А разве environment не для всего подряд работает?
Anton
сють задачи доделать работу kubespray через прокси https://github.com/kubernetes-incubator/kubespray/pull/1412
Anton
вот этот PR переделываю
Sergey
Pip через прокси работает чуть хуже, чем никак.
Александр
Нормально он работает
Может утверждать человек который с ним не работал
ranebull
Может утверждать человек который с ним не работал
Который в pip настраивал прокси и тянул модули таким образом
Anton
подскажите кто может https://github.com/patsevanton/kubespray/blob/master/roles/download/tasks/download_container.yml#L42
Anton
FAILED - RETRYING: container_download | Download containers if pull is required or told to always pull (all nodes) (1 retries left). fatal: [host-kuber1]: FAILED! => {"attempts": 4, "changed": true, "cmd": ["/usr/bin/docker", "pull", "quay.io/calico/ctl:v3.1.3"], "delta": "0:00:00.086626", "end": "2018-10-27 18:37:41.350296", "msg": "non-zero return code", "rc": 1, "start": "2018-10-27 18:37:41.263670", "stderr": "Error response from daemon: Get https://quay.io/v2/: dial tcp 23.21.40.104:443: connect: connection refused", "stderr_lines": ["Error response from daemon: Get https://quay.io/v2/: dial tcp 23.21.40.104:443: connect: connection refused"], "stdout": "", "stdout_lines": []}
Anton
environment: "{{ proxy_env }}" указан - но он почему то не работает
Vadim
proxy для докера надо устанавливать перед запуском демона
Anton
https://github.com/patsevanton/kubespray/blob/master/roles/container-engine/docker/tasks/systemd.yml#L12 подскажите пожалуйста почему эта строка может не отрабатывать?