@pro_ansible

Страница 575 из 625
Антон
11.09.2018
08:34:58
а дальше как нравится

Виктор
11.09.2018
08:35:07
remote_user тебе нужен
remote_user: admin типа такого

?

Google
Антон
11.09.2018
08:35:20
)

вот тут почитай https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html

Amigo
11.09.2018
08:36:07
Попробуйте обявить переменную UserName со значением для одной группы хостов root для другой admin а в playbook user: {{UserName}}

Sergey
11.09.2018
08:40:58
Alexey
11.09.2018
10:04:20
Кто-нибудь знает почему Ansible не выводит stdout при работе модуля shell для группы элементов и как это можно победить? Для одного хоста/пользователя работает корректно: - name: Autodeploy - Get PID shell: ps -aux | grep 'mgmt.jar * init' | awk '{print $2}' register: cr_mgmt_init_pid Для группы пользователей не работает: - name: Autodeploy - Get PID become: true become_user: "{{item.name}}" shell: ps -aux | grep 'mgmt.jar * init' | awk '{print $2}' args: executable: /bin/bash register: cr_mgmt_init_pid with_items: - "{{cr_users}}" Debug говорит следующее: { "cr_mgmt_init_pid": { "changed": true, "msg": "All items completed", "results": [ { "_ansible_item_result": true, "_ansible_no_log": false, "_ansible_parsed": true, "changed": true, "cmd": "ps -aux | grep 'mgmt.jar * init' | awk '{print $2}'", "delta": "0:00:00.020574", "end": "2018-09-11 12:01:57.732854", "invocation": { "module_args": { "_raw_params": "ps -aux | grep 'mgmt.jar * init' | awk '{print $2}'", "_uses_shell": true, "chdir": null, "creates": null, "executable": "/bin/bash", "removes": null, "warn": true } }, "item": { "group": "xxx", "groups": "xxx", "name": "yyy", "password": "xxxyyy" }, "rc": 0, "start": "2018-09-11 12:01:57.712280", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": [] },

ShadoWalkeR
11.09.2018
10:07:57
Господа. Хотите творческий вопрос?) В одном месте я делаю так: set_fact: ext_arr="[ 'a','b','c' ]" В другом месте таски я хочу наимпортировать в этот массив из файлов (так надо) переменных и получить чтото вроде: ext_arr="[ 'a':{name: "a", int_arr=["1","2"]},'b':{name: "b", int_arr=["1","3"]},'c':{name: "c", int_arr=["7"]} ]" Загрузку я реализовал. Как мне переприсвоить ключи в ext_arr?

ShadoWalkeR
11.09.2018
10:58:36
Проблема в том, что как раз надо из нескольких файлов собрать один

Имена меняются

Sergey
11.09.2018
11:01:03
Проблема в том, что как раз надо из нескольких файлов собрать один
Не нужно вспомогательный массив (имена файлов) и окончательный (список хэшей) одинаково именовать.

Udjin
11.09.2018
11:01:13
Имена меняются
"Война остаётся прежней"(с)

ShadoWalkeR
11.09.2018
11:02:23
Я пока что выгружаю содержимое файла во временную переменную и потом её содержимое с именем файла хочу в сгенерированный словарь добавить

Google
ShadoWalkeR
11.09.2018
11:02:34
И вот на последнем шаге проблема

Пока что нагуглилось такое: ext_arr: "{{ ext_arr|combine({item, tmp_arr}) }}" но для первого прохода (когда ext_arr пуст) получаю: {"msg": "|combine expects dictionaries, got u'[]'"}

А не - я сам виноват неправильно ext_arr определял

Максим
11.09.2018
11:14:57
Всем привет. Кто-нибудь использует molecule для тестов? Есть вопрос. Есть роль create_user. Добавляю в неё molecule вот так: molecule init scenario -r create_user в роли появляется каталог molecule со своим содержимым. При выполнении команды molecule test, отображается матица проверок --> Test matrix └── default ├── lint ├── destroy ├── dependency ├── syntax ├── create ├── prepare ├── converge ├── idempotence ├── side_effect ├── verify └── destroy выполняются первые 2 шага и всё. Выполняются корректно Остальные не начинают выполнение. Собственно вопрос: с чем может быть связано? Может чего-то не хватать? Находил в гугле, что можно изменить шаги тестов через редактирование molecule.yml, пробовал указать там ещё раз все шаги, но ничего не изменилось.

Nklya
11.09.2018
11:18:02
там есть дебаг режим а вагрант то есть на компе?

Максим
11.09.2018
11:30:51
в дебаге ничего нет. Он также завершается на успешном выполнении 2-го задания. Вместо вагрната докер. Докер стоит

Dmitrii <freehck>
11.09.2018
13:08:23
Ребята, а есть тут кто-нибудь, кто пользуется ansible-container? Суть в чём. Хочу, чтобы одна роль бралась не из кэша, а применялась всегда. Нигде не нашёл, что нужно для этого прописать в container.yml

Amigo
11.09.2018
13:29:27
Кто-нибудь знает почему Ansible не выводит stdout при работе модуля shell для группы элементов и как это можно победить? Для одного хоста/пользователя работает корректно: - name: Autodeploy - Get PID shell: ps -aux | grep 'mgmt.jar * init' | awk '{print $2}' register: cr_mgmt_init_pid Для группы пользователей не работает: - name: Autodeploy - Get PID become: true become_user: "{{item.name}}" shell: ps -aux | grep 'mgmt.jar * init' | awk '{print $2}' args: executable: /bin/bash register: cr_mgmt_init_pid with_items: - "{{cr_users}}" Debug говорит следующее: { "cr_mgmt_init_pid": { "changed": true, "msg": "All items completed", "results": [ { "_ansible_item_result": true, "_ansible_no_log": false, "_ansible_parsed": true, "changed": true, "cmd": "ps -aux | grep 'mgmt.jar * init' | awk '{print $2}'", "delta": "0:00:00.020574", "end": "2018-09-11 12:01:57.732854", "invocation": { "module_args": { "_raw_params": "ps -aux | grep 'mgmt.jar * init' | awk '{print $2}'", "_uses_shell": true, "chdir": null, "creates": null, "executable": "/bin/bash", "removes": null, "warn": true } }, "item": { "group": "xxx", "groups": "xxx", "name": "yyy", "password": "xxxyyy" }, "rc": 0, "start": "2018-09-11 12:01:57.712280", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": [] },
Попробуйте. - debug: var=item.cr_mgmt_init_pid with_items: "{{ cr_mgmt_init_pid.results }}"

Terminator
11.09.2018
13:44:03
@civilian будет жить. Поприветствуем!

Alexey
11.09.2018
13:44:35
Попробуйте. - debug: var=item.cr_mgmt_init_pid with_items: "{{ cr_mgmt_init_pid.results }}"
Ожидаемо: такого объекта не существует

Amigo
11.09.2018
13:57:14
Ожидаемо: такого объекта не существует
простите. нужно заменить item.cr_mgmt_init_pid на item.stdout_lines или просто stdout

Alexey
11.09.2018
14:41:48
простите. нужно заменить item.cr_mgmt_init_pid на item.stdout_lines или просто stdout
Не, тоже пусто. Такое ощущение, что Ansible вообще не выполняет команду...

Sergey
11.09.2018
14:43:57
Прочитай man по ps, там всё искаропки, grep и awk - лишние в данном случае.

Отбор по пользователю или списку, кастом-формат вывода - всё уже готово.

http://man7.org/linux/man-pages/man1/ps.1.html

Alexey
11.09.2018
14:45:30
Прочитай man по ps, там всё искаропки, grep и awk - лишние в данном случае.
Вопрос был: почему Ansible не выводит для списка, а для одного пользователя выводит

Sergey
11.09.2018
14:46:54
Это не тот вопрос. Передай во второй таск список из одного пользователя, посмотри разницу, принеси в чат - тогда есть смысл задавать вопрос. У тебя разные таски, ты один перед своей консолью - кто будет гадать? Да и таска сама не нужна, как я тебе выше написал.

Terminator
11.09.2018
18:07:20
@DACTAH будет жить. Поприветствуем!

Google
DASTAN
11.09.2018
18:08:06
Всем привет, узнал об ансибл только сегодня, опробовал его в действии немного и просто впечатлен насколько удобный инструмент

теперь больше не хочется настраивать вручную))

всему причина кубернетес)

Terminator
11.09.2018
18:29:22
@ivnahgm будет жить. Поприветствуем!

Terminator
11.09.2018
21:41:49
@Bykva будет жить. Поприветствуем!

bykva
11.09.2018
21:43:14
ПРивет любителям ансибла! Подскажите пожалуйста, можно ли как-то конструкцию tasks: - include_tasks: site.yaml with_sequence: start=2 end=15 распараллелить? чтобы каждый инклуд начал сразу выполняться?

bykva
11.09.2018
21:55:24
печально, спасибо

bebebe
11.09.2018
22:00:20
немного спама прилетело

Go это отличный язык для автоматизации, на который следует обратить внимание DevOps специалистам и SRE. Since February 2015, the SRE (site reliability engineering) team at Stack Overflow has switched from a mixture of Python and Bash to Go. Even though Go isn't a scripting language, for small programs it compiles and runs nearly as fast as Python takes to start. At Stack Overflow we tend to prefer compiled, type-checked languages for large programs, especially when multiple people are collaborating, and, therefore, no one person is familiar with every line of code. Our policy was that Bash scripts couldn't be larger than 100 lines and Python programs couldn't be larger than 1,000 lines. Those seemed like reasonable limits. Rewriting scripts when they grew beyond the limit, however, was a lot of work. It was better to start in Go and avoid the conversion. (C) Tom Limoncelli

bykva
11.09.2018
22:04:39
конкретно эту конструкцию не получится
распараллелил чисто для проверки методом запуска одновременно нескольких копий ансибла, быстрее не стало.

Кто-то знает, апишка vcenter умеет несколько задач паралельно принимать?

вообще да. проблема с моей стороны все-таки. Сорян за полуночный спам

bebebe
11.09.2018
22:07:19
распараллелил чисто для проверки методом запуска одновременно нескольких копий ансибла, быстрее не стало.
попробуйте модифицировать task таким образом tasks: - include_tasks: site.yaml item={{ n }} запустив ansible так: seq 2 15 | xargs -I% -P14 ansible-playbook -e n=% playbook.yml

bykva
11.09.2018
22:10:46
т.е. как раз запустить 14 раз процесс ansible

bebebe
11.09.2018
22:11:09
да, в 14 потоков

bykva
11.09.2018
22:11:19
я уверен что задачу можно решить проще, просто я криво составил playbook

реально производительности распараллеливание не прибавило, поскольку теперь я уперся в производительность дисковой подсистемы в кластере. Спасибо за совет

Google
bebebe
11.09.2018
22:13:40
я уверен что задачу можно решить проще, просто я криво составил playbook
ознакомьтесь так же с выполнением тасков асинхронно https://docs.ansible.com/ansible/2.5/user_guide/playbooks_async.html

Admin
ERROR: S client not available

bykva
11.09.2018
22:18:46
да, я это уже видел, не помогло, потому и пошел с вопросами =)

Sergey
11.09.2018
22:29:44
bebebe
11.09.2018
22:53:18
(echo [all]; seq 2 15 | xargs -I% echo "fakeHost% ansible_connection=local n=%") >> inventory.ini ansible -F 15 -i ./invenory.ini ./playbook.yaml plabook.yaml: --- hosts: all strategy: free tasks: - include_tasks: site.yaml item={{ n }}

не советую ?

Terminator
11.09.2018
23:08:54
@serboox будет жить. Поприветствуем!

@Av2018av будет жить. Поприветствуем!

Devourer
12.09.2018
07:44:43
Парни, привет. Соррян за глупый вопрос, но я быстро. Для исполнения win_chocolatey, шоколадка должна быть установлена на вин-хосте?

Alexander
12.09.2018
08:20:43
А ты попробуй, потом расскажешь результат

Devourer
12.09.2018
08:23:24
Пробовал, он чот фэйлился.



Alexander
12.09.2018
08:25:35
ну а вывод-то где?

Devourer
12.09.2018
08:27:32


--- win_chocolatey: name: malwarebytes state: present



terry
12.09.2018
08:48:32
добрый день какие бест практики по поиску и удалению из файла нескольких строк конфига, само собой на удаленных серверах ? есть код в файле nginx.conf: log_format graylog2_json escape=json '{ "timestamp": "$time_iso8601", ' '"remote_addr": "$remote_addr", ' '"body_bytes_sent": $body_bytes_sent, ' '"request_time": $request_time, ' '"response_status": $status, ' '"request": "$request", ' '"request_method": "$request_method", ' '"host": "$host",' '"upstream_cache_status": "$upstream_cache_status",' '"upstream_addr": "$upstream_addr",' '"http_x_forwarded_for": "$http_x_forwarded_for",' '"http_referrer": "$http_referer", ' '"http_user_agent": "$http_user_agent" }'; # replace the hostnames with the IP or hostname of your Graylog2 server access_log syslog:server=ip:12301 graylog2_json; error_log syslog:server=ip:12302 error; как его найти и удалить? обносить регулярками?

https://docs.ansible.com/ansible/2.6/modules/lineinfile_module.html

как тут

bebebe
12.09.2018
08:52:20
все ОЧЕНЬ плохо

Google
bykva
12.09.2018
09:11:49
а почему не https://docs.ansible.com/ansible/2.6/modules/lineinfile_module.html ?

там же поиск по регулярке и state absent

bebebe
12.09.2018
09:13:01
там же поиск по регулярке и state absent
я предположил что нужно удалить строки между двумя паттернами

Sergey
12.09.2018
09:13:03
а почему не https://docs.ansible.com/ansible/2.6/modules/lineinfile_module.html ?
я бы сказал - https://docs.ansible.com/ansible/2.6/modules/blockinfile_module.html

Юра
12.09.2018
11:18:23
Подскажите пожалуйста. Есть у меня таска на обновление всех пакетов в ОС. И есть несколько групп серверов, на которых нужно исключить определённые пакеты из списка обновляемых. Решается в принципе таким образом - https://gist.github.com/RenderQwerty/dc70a6927d6313f2b36a9d7d486f8fe2 Вопрос вот в чём - каким образом можно добиться того, чтобы этот таск выполнялся корректно на остальных серверах, где нет никаких пакетов в exclude? Сейчас на таких ansible логично падает с ошибкой, что exclude_soft'' is undefined'

Страница 575 из 625