Павел П.
Спасибо! Наверно и правда правильнее сразу будет в плейбук писать)
Денис
с версии 2.7 вроде ансибл научился обрабатывать ошибку, когда хост unreacheble
Денис
может тоже пригодится
Павел П.
спасибо!
om
Подскажите, а есть ли модуль для обновления хостов, который умеет как apt, так и yum?
Anonymous
om
om
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
Вроде везде протэгировал
Victor
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 поможет наверно
Womchik
Alex
У меня есть список словарей собранный find_module, в словаре ключ с путями к пакетам и ещё 2 имени пакета из репы. Как мне из этого набора сделать comma separated list в таске?
Womchik
combine?
Womchik
set_fact
Alex
set_fact
как дополнительная переменная поможет в вопросе?
Alex
"{{files_matched.files}} + [ {path: cups-libs}, {path: cairo} ]" Готово, дальше что?
Alex
Марат
json_query
Alex
Марат
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
Alex
Накостылял двумя тасками, пофиг. Всем пятница доны!
Anton
Вечер добрый. Подскажите пожалуйста как правильно указать environment ?
Код и пример сделал на Stackoverflow
https://stackoverflow.com/questions/53022158/how-set-2-environment-path-and-proxy-env-in-ansible-playbook
Sergey
в extra_args любую фигню можно передать
Andrey
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
И гадать тут не любят, поэтому описание задачи в студию.
Anton
сють задачи доделать работу kubespray через прокси
https://github.com/kubernetes-incubator/kubespray/pull/1412
Anton
вот этот PR переделываю
Sergey
Pip через прокси работает чуть хуже, чем никак.
ranebull
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
подскажите пожалуйста почему эта строка может не отрабатывать?