
Sergey
26.09.2018
00:13:30
Тогда и чинить так, как там описано.

om
26.09.2018
01:56:52
Привет
Тут такая штука - начинаю ансибл, хочу сделать красиво: линукс серверы в домене active directory (corp). Соответственно, подключение доменным пользователем по ssh происходит без запроса пароля (спасибо керберосу и realmd+sssd):
ssh ansible_svc@server1 - успешно.
При попытке запустить ansible all -m ping получаю, что ansible подставляет имя пользователя с доменным суффиксом:
server1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ansible_svc@corp@server1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n",
"unreachable": true
}
Если ssh ansible_svc@corp@server1 то запрашивает пароль.
Можно ли уговорить ансибл не использовать суффикс?

Sergey
26.09.2018
01:59:48
вообще странные конструкции

Google

Sergey
26.09.2018
02:01:32
если тебе нужно сказать "захожу доменным пользователем на конкретный хост", то в винде это может выглядеть как DOMAIN\user, то есть в результате моет получиться что-то типа "CORP\ansible_svc@server1"

om
26.09.2018
02:09:10

Sergey
26.09.2018
02:09:41
всегда пожалуйста ?

om
26.09.2018
02:09:51
Я хожу доменным пользователем с линукса на линукс.

Sergey
26.09.2018
02:10:25

om
26.09.2018
02:10:44
Есть такое. Один раз встретил нестандартное повдение по доступу к ФТП, кажется- оказалось у человека пароль с собакой и двоеточием.
server1 | SUCCESS => {
"changed": false,
"ping": "pong"
}

Sergey
26.09.2018
02:14:04

Udjin
26.09.2018
03:57:56
Парни, такой вопрос странный. У DO в дроплетах есть кнопка Rebuild. Она не удаляя дроплета просто накатывает на него чистый выбранный имейдж с ОС. Айпишник и всё остальное сохраняется. Вопрос:
Как мне это сделать ансиблом? модуль digital-ocean-module - умеет такое? Я посмотрел - опции rebuild нету.
в примерах
# Ensure a droplet is present
# If droplet id already exist, will return the droplet details and changed = False
# If no droplet matches the id, a new droplet will be created and the droplet details (including the new id) are returned, changed = True.
- digital_ocean:
state: present
command: droplet
id: 123
name: mydroplet
api_token: XXX
size_id: 2gb
region_id: ams2
image_id: fedora-19-x64
wait_timeout: 500

Google

Udjin
26.09.2018
03:59:57
говорится, что если дроплет есть - ансибл с ним ничего делать не будет. Я так полагаю, что даже если сменить имейдж на новый, с федоры на убунту - оно ж его не отребилдит?

om
26.09.2018
04:03:04
Спасибо!
Решил вопрос установкой
remote_user = ansible_svc
Но это не выход. Как вариант - потестить ансибл - работает. Но как целевоё решение (пользователь может зайти на сервер и запустить сценарий ансибла, который в зависимости от прав на целевых серверах будет выполняться или нет) не подходит.
Значит, будем решать Проблему Двух Собак...

bebebe
26.09.2018
04:26:36

om
26.09.2018
06:56:49
Есть ли возможность указывать в файле ansible.cfg макросы или переменные?
Типа remote_user = ${USER/@corp/}

bebebe
26.09.2018
06:57:24
нет, если только не темплатизировать его заранее

Terminator
26.09.2018
07:06:31
Alexander Rozhkov будет жить. Поприветствуем!

cent
26.09.2018
07:20:06
Я смотрю чатик оживился)
А кто-то ловил проблемы с heredoc ?
У меня почему-то в конце файла EOF добавляет постоянно

Pavel
26.09.2018
07:23:19
парни, привет. вопрос: можно ли в новом ansible 2.7 через PSRP модуль передать команды транзитом на конечный хост, то есть ansible -> windows_bastion -> target host ?
никто ничего не делал подобного

Terminator
26.09.2018
08:42:19
@melanies_melody будет жить. Поприветствуем!


?simplemice
26.09.2018
09:01:16
Ansible - это Open Source инструмент, который доступен каждому! Автоматизация наше всё, независимо от того кто ты - Сис.админ или Программист или Айтишник...
27 Сентября в 19:00 по МСК будет бесплатный урок по освоению базы перед стартом Devops-практик. Урок подойдет всем, кто хочет освоить Devops и начать работать в этом направлении, количество мест строго ограничено.
Регистрация по ссылке: goo.gl/Prtguv
Детали по бесплатному живому онлайн-занятию Devops by Fevlake: Ansible
? Время проведения:
27 Сентября в 19:00 по МСК, не пропустите
? Программа урока:
- зачем нужны системы управления конфигурациями?
- сравниваем ansible/chef/puppet/salt
- основы работы с ansible
- настраиваем первый сервер
- деплоим php с помощью ansible
- деплоим docker с помощью ansible
? Лектор:
Василий Озеров - основатель агентства Fevlake и действующий Devops-инженер (опыт в Devops более 5 лет) :
«В этом году мы начали готовить крутых Devops-инженеров из системных администраторов, программистов и It-шников. Приходите на мой открытый живой онлайн-урок по Ansible, ответим на все ваши вопросы»
Регистрация: goo.gl/Prtguv
если вдруг кому интересно


Terminator
26.09.2018
09:49:56
@n07n0w будет жить. Поприветствуем!
Aleksey Andryuschenko будет жить. Поприветствуем!

Artem
26.09.2018
11:51:43
Мышшш

shine
26.09.2018
11:52:47
што, опять?

?simplemice
26.09.2018
11:52:58

Artem
26.09.2018
11:54:05
Ты коучишь?)

?simplemice
26.09.2018
11:54:16

Artur
26.09.2018
12:09:12
привет.
delegate_to возможно подцепить к блоку ?

Google

Terminator
26.09.2018
12:15:10
@Rishats будет жить. Поприветствуем!

Artur
26.09.2018
13:23:45
прицепить можно.
но наткнулся на следующее:
имеется [dev-app]
dev8-app1 ansible_host="10.0.0.1" ansible_ssh_user=admin
dev7-app1 ansible_host="10.0.0.2" ansible_ssh_user=admin
[dev-db]
dev8-db1 ansible_host="10.0.0.3" ansible_ssh_user=admin
dev7-db1 ansible_host="10.0.0.4" ansible_ssh_user=admin
[dev:children]
dev-app
dev-db
в плейбуке есть блок с delegate_to: "dev7-app1".
при его запуске он ведёт себя очень странно.
пример выполнения таска
changed: [dev8-app1 -> 10.0.0.2]
changed: [dev7-app1 -> 10.0.0.2]
но dev8-app1 имет совсем другой ип в инвентори листе. получается такс запускается 2 раза на одной тачке.
как такое лечится ?
запускаю с ключом -l dev

Евгений
26.09.2018
13:39:15
Так а роль для какой группы хостов запущена? Он же с каждого хоста из этой группы вызовет таск на хосте, куда делегируешь.

Artur
26.09.2018
13:57:40
чутка покапался и понял почему ип одинаковый
делегат не "запускает только на указаном хосте", а запускает команду ввезде, потом понимает что выполнять нужно на другом хосте и пробрасывает её ( задачу) туда.
но у себя ( на хосте где не требуется запускать ) он её тоже видит
поэтому ип одинаковые выходят, и поэтому 2 запуска срабатывает
есть какая либо возможность "спрятать" этот такс от других хостов ?


Rishat
26.09.2018
14:02:42
- name: Make sure nginx virtual hosts are configured
tags: nginx
template: src=nginx-virtualhost.conf.j2 dest=/etc/nginx/conf.d/{{ item.key }}.conf
with_dict: "{{ virtualhosts }}"
when: enable_ssl|default(false)|bool == false
notify:
- Restart nginx отлетает с ошибкой TASK [webtier : Make sure nginx virtual hosts are configured] ************************************************************************************************
fatal: [192.168.12.12]: FAILED! => {"msg": "'virtualhosts' is undefined"} Как я понимаю https://github.com/Rishats/ansible_laravel в папке host_vars должно как-то по другому записываться переменная?

Artur
26.09.2018
14:03:47

Евгений
26.09.2018
14:03:56
Да, есть ключ - запустить только один раз. run_once: true
https://docs.ansible.com/ansible/2.6/user_guide/playbooks_delegation.html#run-once

Rishat
26.09.2018
14:04:00

Admin
ERROR: S client not available

Artur
26.09.2018
14:04:03
т.е. совпадает с именем в инвентори листе ?
либо вынеси её в all файл

Rishat
26.09.2018
14:04:46
Аааа,спасибо,вроде начинаю понимать. Сейчас попробую)

Artur
26.09.2018
14:06:12
но на этот раз выполнилась 1 раз

Google

Artur
26.09.2018
14:06:28
как и требовалось
я так понимаю что запустилось на первом хосте из группы, он формарднул такс на нужный хост и этим всё закончилось
да. так и было. проверил по выводу

Евгений
26.09.2018
14:08:15
Просто пока читал, понял, что запутался)
```
changed: [dev8-app1 -> 10.0.0.2]
changed: [dev7-app1 -> 10.0.0.2]
```
тут видно что таск запустился на двух хостах.
А delegate в таске с константным ip. Вот он и выполнился дважды.

Artur
26.09.2018
14:08:18
везде фигурирует dev8-app1 а не dev7-app1, но ип при этом dev7-app1

Terminator
26.09.2018
14:10:50
@JTProgru будет жить. Поприветствуем!

Евгений
26.09.2018
14:13:21
В таких случаях, наверное лучше всего разнести сценарий по ролям.
Ролью можно определить группу хостов для запуска и конкретный сценарий. Одна роль вместо таска с delegate - на один хост, вторая роль - все остальные одинаковые таски для всех хостов.

Artur
26.09.2018
14:18:21
думаю мне не подойдёт.
т.к. блок с делегатом дожен срабатывать лишь при выполнении условия из when в плейбуке
по сути если указана переменная, то блок с делегатом должен будет сработать
а в setup можно условия пихать ? если да, то разделю на 2 роли

Terminator
26.09.2018
16:39:21
@rubycrafter будет жить. Поприветствуем!

Constantin
26.09.2018
16:44:07
Всем привет, может кто подскажет, неужели нет способа сделать include_role и delegate_to?

Евгений
26.09.2018
16:44:22
Условие when вроде к любому модулю можно дописать.
Ровно как и на запуск роли тоже можно условие написать.

Constantin
26.09.2018
16:44:35
Мне нужно роль на локальной машине выполнить, но delegate_to на уровне тасков, когда я подрубаю роль не срабатывает

Евгений
26.09.2018
16:49:33
Я выношу в отдельную роль все локальные таски, просто потому что AWX в докере и 127.0.0.1 не работает.
- hosts: host_name_from_inventory
gather_facts: yes
roles:
- { role: localhost, when: ansible_distribution == "CentOS"}

Rad
26.09.2018
16:55:43
Тут сейчас будет про ansible
Ссылка на прямую трансляцию сегодняшнего митапа про IaC: https://www.youtube.com/watch?v=7eP0KOD4zCw
Скоро начинаем!

Евгений
26.09.2018
17:00:00

Terminator
26.09.2018
17:04:33
@the_asten будет жить. Поприветствуем!