Terry
все хотят помимо писания всякого рода костылей и великов немного погадить в карму молодому адепту гугл поиска в чате
так говорят играет самолюбие и тогда адепт начинает думать и пробовать сам, преждем чем получить ведро помоев сверху ;)
Terry
там...это где?
всмысле везде по чатам, если просишь помощи и получаешь ссылку в гугл
Asgoret
Terry
если она ведет в ответ, почему нет?
да погоди, пусть человек просто осмыслит...
мне учитель в школе говорила, если не поняли, что от вас хотят в задаче с чтения задания за первый раз - прочтите еще раз и так пока не дойтет ;)
Alexander
Alexander
Сильно зависит от опять же подключенных калбек-плагинов. Поэтому я бы не стал полагаться на такое.
bebebe
Anonymous
Здравствствуйте
Anonymous
ansible --version
ansible 2.6.3
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
Anonymous
есть несколько серверов на части из серверов стоят пользователи root на другой части другой пользователь админ
Anonymous
прочитал что для разных групп можно настройки задать в отдельной папке group_vars
Anonymous
для нужных груп прописать к примеру ansible_ssh_user: admin
Anonymous
но ansible все равно подключается по root
Anonymous
подскажите что не так указал
Anonymous
пните куда копать
Sergey
remote_user тебе нужен
Salem
лучше приведи все к одному виду, но это так...
Anonymous
92.168.0.158 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n",
"unreachable": true
Антон
Если я правильно понял должно быть примерно вот так foo1 ansible_host=foo1_ip ansible_ssh_user=root
foo2 ansible_host=foo2_ip ansible_ssh_user=admin
foo3 ansible_host=foo3_ip ansible_ssh_user=foo3
Антон
а дальше как нравится
Anonymous
?
Terry
Антон
)
Антон
вот тут почитай https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html
Amigo
Попробуйте обявить переменную UserName со значением для одной группы хостов root для другой admin а в playbook user: {{UserName}}
Sergey
Alexey
Кто-нибудь знает почему 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
Господа. Хотите творческий вопрос?)
В одном месте я делаю так:
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?
k
Господа. Хотите творческий вопрос?)
В одном месте я делаю так:
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?
Вроде так можно:
- set_fact:
ext_arr[item.name]: "{{ item }}"
with_items: list_of_dicts_to_load
Но вообще, я бы сначала сформировал какую-нибудь json-ину снаружи, а потом целиком её загрузил через from_json.
upd: поправил
ShadoWalkeR
Проблема в том, что как раз надо из нескольких файлов собрать один
ShadoWalkeR
Имена меняются
ShadoWalkeR
Я пока что выгружаю содержимое файла во временную переменную и потом её содержимое с именем файла хочу в сгенерированный словарь добавить
Sergey
ShadoWalkeR
И вот на последнем шаге проблема
ShadoWalkeR
Пока что нагуглилось такое:
ext_arr: "{{ ext_arr|combine({item, tmp_arr}) }}"
но для первого прохода (когда ext_arr пуст) получаю:
{"msg": "|combine expects dictionaries, got u'[]'"}
ShadoWalkeR
А не - я сам виноват неправильно ext_arr определял
Maksim
Всем привет. Кто-нибудь использует 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
там есть дебаг режим
а вагрант то есть на компе?
Maksim
в дебаге ничего нет. Он также завершается на успешном выполнении 2-го задания. Вместо вагрната докер. Докер стоит
Dmitrii
Ребята, а есть тут кто-нибудь, кто пользуется ansible-container?
Суть в чём. Хочу, чтобы одна роль бралась не из кэша, а применялась всегда. Нигде не нашёл, что нужно для этого прописать в container.yml
Amigo
Кто-нибудь знает почему 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 }}"
Alexey
Nklya
Alexey
Sergey
Sergey
Прочитай man по ps, там всё искаропки, grep и awk - лишние в данном случае.
Sergey
Отбор по пользователю или списку, кастом-формат вывода - всё уже готово.
Sergey
http://man7.org/linux/man-pages/man1/ps.1.html
Sergey
Это не тот вопрос. Передай во второй таск список из одного пользователя, посмотри разницу, принеси в чат - тогда есть смысл задавать вопрос. У тебя разные таски, ты один перед своей консолью - кто будет гадать? Да и таска сама не нужна, как я тебе выше написал.
D
Всем привет, узнал об ансибл только сегодня, опробовал его в действии немного и просто впечатлен насколько удобный инструмент
D
теперь больше не хочется настраивать вручную))
D
всему причина кубернетес)
Никита
Aleksandr
ПРивет любителям ансибла! Подскажите пожалуйста, можно ли как-то конструкцию
tasks:
- include_tasks: site.yaml
with_sequence: start=2 end=15
распараллелить? чтобы каждый инклуд начал сразу выполняться?
bebebe
Sergey
Aleksandr
печально, спасибо
bebebe
немного спама прилетело
bebebe
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
Aleksandr
Кто-то знает, апишка vcenter умеет несколько задач паралельно принимать?
Aleksandr
вообще да. проблема с моей стороны все-таки. Сорян за полуночный спам
Aleksandr
т.е. как раз запустить 14 раз процесс ansible
bebebe
да, в 14 потоков
Aleksandr
я уверен что задачу можно решить проще, просто я криво составил playbook
Aleksandr
реально производительности распараллеливание не прибавило, поскольку теперь я уперся в производительность дисковой подсистемы в кластере. Спасибо за совет
Aleksandr
да, я это уже видел, не помогло, потому и пошел с вопросами =)
Sergey
bebebe
(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 }}
bebebe
не советую 😉
Alexander
А ты попробуй, потом расскажешь результат
Alexander
ну а вывод-то где?