@pro_ansible

Страница 581 из 625
Максим
19.09.2018
09:48:07
bebebe
19.09.2018
09:53:03
https://pastebin.com/WUVPPNXz
а вы плейбуку против какого количества хостов запускаете? покажите какую команду выполняете, скрыв название хостов

bebebe
19.09.2018
09:54:31
понятно

Google
bebebe
19.09.2018
09:54:32
вот ваш баг

https://github.com/ansible/ansible/issues/41312

strategy = free в ansible.cfg замените на strategy = serial и попробуйте запустить снова

почитайте за что эта опция отвечает: https://docs.ansible.com/ansible/2.5/user_guide/playbooks_strategies.html

Vladimir
19.09.2018
09:58:18
с бодреньким ) а кто-нибудь сталкивался с такой развлекухой: есть хост, он принадлежит к двум групппам у каждой группы свои групварсы и плейбуки работают по хостам обозванным группами т.е. в инвентаре: l2 - host [walter] l2 [site] l2 в плейбуке 1 hosts: walter в плейбуке 2 hosts: site в group_vars/walter nginx_port:8011 в group_vars/site nginx_port:8022 разные порты для дебага плейбуки запускают каждый свою роль в плейбуке 1 роль была создана и отдебажена первой, все ок затем скопирована в роль плейбука 2 и сделаны изменения в конфигах и прочем при отработке плейбука 2 (site) групварсы берутся из групварсов другой группы (walter) при этом, если его переименовать, то отрабатывается правильно, берет варсы из своего файла но что более смешно, попробовал запустить первый плейбук (walter) с переименованным файлом его переменных, но ругани не получил, оно взяло варсы group_vars/site и типа все норм..... а вот если убрать и второй файл, то тогда ругается что нет такой вары сижу, чешу репу, не понимаю, как так......

проходила мимо Ванга, шепнула, что возможно ансиблу по барабану из какой группы брать варю, если хост и той и другой принадлежит.....

Maksim
19.09.2018
10:05:52
Есть такое)

Ivan
19.09.2018
10:06:36
https://t.me/pro_ansible/57937 разобрался, вот так надо было сделать - mysql_user: name: root priv: '*.*:ALL,GRANT' host: '%'

host: '%' - надо было указать

Fedor
19.09.2018
10:07:13
нехорошо так делать

небезопасно

Google
Kanstantsin
19.09.2018
10:09:23
или это при передаче temp файлов ансибла?
это при передаче темп файла

проблема в целевом хосте, но из-за чего, вообще не ясно

Ivan
19.09.2018
10:10:59
небезопасно
я понимаю, но мне надо было для того, чтобы мои коллеги тетсировщики могли юзать юай тулзовину, а то не все понимают CLI

Ivan
19.09.2018
10:12:15
не, у нас тест энвы дестроятся

они у нас независимы

Fedor
19.09.2018
10:12:28
я про плейбук :)

Ivan
19.09.2018
10:13:17
ааа, та мы его тоже только юзаем для тест энвов. Я сам мануальщик, просто решил облегчить жизнь коллег с некторыми задачами

Fedor
19.09.2018
10:13:59
?

bebebe
19.09.2018
10:15:37
https://pastebin.com/sgrsS51v
Закоментируйте эту строку в ansible.cfg

Fitz
19.09.2018
10:42:15
привет. подскажите, таск может состоять из единственного notify?

Aleksey
19.09.2018
10:43:50
с бодреньким ) а кто-нибудь сталкивался с такой развлекухой: есть хост, он принадлежит к двум групппам у каждой группы свои групварсы и плейбуки работают по хостам обозванным группами т.е. в инвентаре: l2 - host [walter] l2 [site] l2 в плейбуке 1 hosts: walter в плейбуке 2 hosts: site в group_vars/walter nginx_port:8011 в group_vars/site nginx_port:8022 разные порты для дебага плейбуки запускают каждый свою роль в плейбуке 1 роль была создана и отдебажена первой, все ок затем скопирована в роль плейбука 2 и сделаны изменения в конфигах и прочем при отработке плейбука 2 (site) групварсы берутся из групварсов другой группы (walter) при этом, если его переименовать, то отрабатывается правильно, берет варсы из своего файла но что более смешно, попробовал запустить первый плейбук (walter) с переименованным файлом его переменных, но ругани не получил, оно взяло варсы group_vars/site и типа все норм..... а вот если убрать и второй файл, то тогда ругается что нет такой вары сижу, чешу репу, не понимаю, как так......
- name: Manage MariaDB server hosts: [ 'debops_service_mariadb_server', 'debops_mariadb_server' ] become: True environment: '{{ inventory__environment | d({}) | combine(inventory__group_environment | d({})) | combine(inventory__host_environment | d({})) }}' можно вроде так изменить повидение но это не точно

Fitz
19.09.2018
10:43:58
привет. подскажите, таск может состоять из единственного notify?
пробовал так: - name: random notify: handler и так: - name: random notify: - handler ругается

Aleksey
19.09.2018
10:45:10
вроде нет смысл notify теряется

Sergey
19.09.2018
10:46:51
привет. подскажите, таск может состоять из единственного notify?
нет, не может. https://stackoverflow.com/questions/40139757/ansible-playbook-directly-run-handler

Fitz
19.09.2018
10:47:48
спасибо

Huan
19.09.2018
10:48:35
привет всем. подскажите как заставить ансибл авторизироваться в авс. создал плейбук, указал access_key и secret_key, но выдает "AuthFailure: AWS was not able to validate the provided access credentials"? Вот пример плейбука: --- - hosts: localhost gather_facts: false vars: aws_access_key: "XXXXXXXXXXXX" aws_secret_key: "XXXXXXXXXXXXXXXXXXXXXXXXX" key_name: "keypair" instance_type: "t2.micro" image: "ami-xxxxxxxxxx" wait: yes vpc_subnet_id: vpc-xxxxxxxxxxxx assign_public_ip: no region: "eu-central-1" ec2_url: "https://ec2.amazonaws.com" tasks: - name: Create instance ec2: aws_access_key={{ aws_access_key }} aws_secret_key={{ aws_secret_key }} count={{ count | default('1') }} assign_public_ip={{ assign_public_ip }} ec2_url={{ ec2_url }} image={{ image }} key_name={{ key_name }} region={{ region }} tenancy={{ tenancy | default('default') }} instance_type={{ instance_type }} instance_tags='{ "Name":"test" }' wait=true

Huan
19.09.2018
10:51:05
брал с мануала пример

Google
Huan
19.09.2018
10:51:10
он не нужен?

bebebe
19.09.2018
10:53:29
он не обязателен. попробуйте в таску ec2 подставить креденшелы напрямую уберите ec2_url все должно заработать

если пара AWS ACCESS/SECRET KEYS валидна для этого региона и этого api есть доступ через iam до ec2.compute

Huan
19.09.2018
10:55:29
не помогло( ключи валидные, проверял через awscli

bebebe
19.09.2018
10:57:01
попробуйте в заведомо чистом окружение тот же aws cli: alias aws='docker run --rm -t $(tty &>/dev/null && echo "-i") -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION}" -v "$(pwd):/project" mesosphere/aws-cli' подставьте переменные окружения и еще раз забутайте инстанс

Vasily
19.09.2018
10:57:30
Удалось разрешить вопрос?
нет (не продолжал искать причину)

Danis
19.09.2018
10:59:17
нет (не продолжал искать причину)
Посмотри внимательно что пытаешься разархивировать, он все равно пишет именно такую ошибку. Даже если путь/файл косячный.

Sergey
19.09.2018
10:59:33
bebebe
19.09.2018
10:59:40
так awscli работает. проверял на разных серваках
я вас просил проверить именно через докер и переменные окружения на разных серваках у вас может быть разный ~/.aws

Vasily
19.09.2018
11:10:49
Посмотри внимательно что пытаешься разархивировать, он все равно пишет именно такую ошибку. Даже если путь/файл косячный.
если указать заведомо неверный путь то оно говорит "msg": "Source '/home/username/a.tar.gzeeep' does not exist" Файл нормальный, руками tar его распаковывает

Huan
19.09.2018
11:12:01
я вас просил проверить именно через докер и переменные окружения на разных серваках у вас может быть разный ~/.aws
выдало aws ec2 create-image --instance-id i-1234567890abcdef0 --name "My server" --description "An AMI for my server" An error occurred (AuthFailure) when calling the CreateImage operation: AWS was not able to validate the provided access credentials странно, но видеть список инстансов могу

Vasily
19.09.2018
11:12:10
Он лежит на хосте, где запускается Ansible?
да. remote_src=yes, и с локального тоже пробовал грузить

Danis
19.09.2018
11:13:49
Попробуй переименовать в *.tgz

Vasily
19.09.2018
11:15:21
Попробуй переименовать в *.tgz
"Failed to find handler for \"/home/username/a.tgz\". Make sure the required command to extract the file is installed. Command \"/usr/bin/unzip\" could not handle archive. Command \"/bin/tar\" could not handle archive."

Google
Vasily
19.09.2018
11:16:19
/bin/tar тоже присутствует

bebebe
19.09.2018
11:17:02
Но сначала попробуйте самостоятельно решить проблему с policy. Ансибл тут не причем

Huan
19.09.2018
11:20:31
понял, спасибо

Admin
ERROR: S client not available

Danis
19.09.2018
11:21:43
/bin/tar тоже присутствует
Могу точно сказать одно: не привязывайтесь к выводу лога при использовании этого модуля. Он всегда пишет одно и то же. В моем случае он писал эту ошибку, когда я случайно попытался разархивировать файл *.sql.

Писал, что не может найти tar или unzip.

Danis
19.09.2018
11:24:16
Mikhail
19.09.2018
11:46:54
балин, а чего делать если random(seed=...) дает одинаковый результат при разных seed?

как вообще эта идемпотентность работает у фильтра?

Vasily
19.09.2018
11:54:30
@danis9yearsago указал абсолютный путь в dest=, работает :) во всех остальных местах относительный

Максим
19.09.2018
11:57:24
Закоментируйте эту строку в ansible.cfg
Спасибо, помогло. Получается, что стратегию free для 1 хоста не получится использовать, я правильно понимаю?

bebebe
19.09.2018
11:59:47
Спасибо, помогло. Получается, что стратегию free для 1 хоста не получится использовать, я правильно понимаю?
отлично. я вам выше кидал ссылку на ишую на гитхабе https://github.com/ansible/ansible/issues/41312 один из советов - попробовать версию devel - не знаю на сколько это вам подходит. стратегия free сама по себе бажная в плане output'а в вашей версии 2.5.2, и она бессмысленна если запускать её против одного хоста

судя по релизам, вам подойдет 2.6.2.. хотя не уверен что там все пофиксили https://github.com/ansible/ansible/pull/17355

да, надо ставить devel и смотреть

Mikhail
19.09.2018
12:03:23
как вообще эта идемпотентность работает у фильтра?
даже иначе бы спросил.. насколько вероятно, что мне просто люто повезло и больше я такого не увижу

Terminator
19.09.2018
13:45:00
@maslowski будет жить. Поприветствуем!

Google
Terminator
19.09.2018
13:50:40
@vizdrag будет жить. Поприветствуем!

Sergey
19.09.2018
13:55:28
Привет ребят неделю колупаюсь с ролью, не получается добить. в @devops_ru тоже что то не зашел вопрос суть: есть роль для mysqldump, реализованная в ansible, она дампит базы, и забирает файл на деплой хост так вот мне требуется дополнить ее частью импорта в другую среду(хостгруппу), а у меня на входе определяется только одна хостгруппа, с ней собсна дамп и работает. Покажите пожалуйста в какую сторону копать, чтобы разграничить таски между разными хостгруппами? Раздельно я эти таски выполнить могу, а вместе в одной роли нет



Ilya
19.09.2018
13:57:34
так может и разделить на две роли - экспорта и импорта?

Sergey
19.09.2018
13:58:40
так может и разделить на две роли - экспорта и импорта?
как самый плохой вариант да, к нему наверное и приду, интересует вообще реализация с несколькими хостгруппами

и такая штука должна работать из любой среды(хостгруппы) в любую среду(хостгруппу)

Ilya
19.09.2018
13:59:25
мнится мне, что для этого внутри роли нужно реализовать логику, а это как я понимаю не бест практис совсем

Terminator
19.09.2018
14:20:43
@v_litvin будет жить. Поприветствуем!

Victor
19.09.2018
14:21:52
Доброго дня. А кто как проверяет полную работоспособность всех плейбуков? У меня лично рабочий процесс выходит, как там чуть правок, сям чуть правок. Потом еще чуть правок, потому что что-то от этих предыдущих правок не то вышло. Я вангую что у меня процесс немного не правильно поставлен.

Sergey
19.09.2018
14:22:03
Внутри роли плейбука костыль разделение вызовов роли по хостгруппам. Если точнее - по переменным в них. Тогда достаточно будет для группы group_vars поставить определённую - и всё.

Victor
19.09.2018
14:27:27
Можно прогонять с —check —diff. Тогда, если правильно роли написаны и инфра соответствует написанному, всё будет [OK]. Если нет - покажет все расхождения. Конечно, грязь с "command" и "shell" не сработает.
$ find ./playbooks/ -type f -name "*.y*ml" | wc -l 102 Причем для части из них нужно указывать в промпте параметры, потому что это автоматизация небольшого процесса.

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