
Yuri
23.05.2017
15:20:12
А!
Так он у тебя и не выполняет твой таск
Ты таск куда написал?

Липоля Аймаксович
23.05.2017
15:21:28

Google

Yuri
23.05.2017
15:21:33
И заодно можно содержимое /docker/compose/ansible/ansible.yml увидеть?

Липоля Аймаксович
23.05.2017
15:22:01
а блин, папку таскс надо да?

Yuri
23.05.2017
15:22:16
Ага.. вижу. А теперь сделать в roles/docker-compose директорию tasks и пихни туда main.yml

Липоля Аймаксович
23.05.2017
15:26:03
Точно. Вот это я и проглядел. Хотя в прошлом плейбуке не прошляпил и создал подпапки tsksk. Спасибо.
а чтобы скопировать полностью папку с ансибл-хоста на удаленный хост, надо использовать synchronize?

Kuroi
23.05.2017
15:29:15
Или copy


Рома
23.05.2017
15:31:54
всем привет! столкнулся с вопросом при написании шаблона ansible...
есть список вида:
my_list:
- element 1
- element {{ var1 }}
- element {{ var2 }}:
- subel1
- subel2
пытаюсь его распарсить в шаблоне:
{% macro config(parameters, indent = 0) %}
{% for parameter in parameters %}
{% if parameter is string -%}
{{ parameter|indent(indent, true) }}
{% elif parameter is mapping %}
{% for parameter_key, parameter_value in parameter.iteritems() -%}
{{ '<'|string|indent(indent, true) }}{{ parameter_key }}{{ '>\n' -}}
{{ config(parameter_value, indent + 8) }}
{{- '</'|string|indent(indent, true) }}{{ parameter_key|string|regex_replace('^([a-zA-Z]+)( .*)?','\\1') }}{{ '>\n' }}
{% endfor %}
{% endif %}
{% endfor %}
{% endmacro %}
в строке
{{ '<'|string|indent(indent, true) }}{{ parameter_key }}{{ '>\n' -}}
не раскрывается переменная {{ var2 }}, выводится просто текстом вместе с фигурными скобками
у меня не получается написать шаблон таким образом, чтобы эта переменная {{ var2 }} была воспринята как переменная
может кто подскажет чего?


Липоля Аймаксович
23.05.2017
15:45:17
Или copy
copy сожрал всю память и весь swap 0_о

Kuroi
23.05.2017
15:46:10
Зачит что-то не так делаешь, копи через sftp/scp работает, и как оно может вожрать всю память я с трудом представляю

Липоля Аймаксович
23.05.2017
15:47:09
может лучше ее в архив, а потом копи вызывать? а на месте уже разархивировать
в общем копи не выжил
"ERROR! A worker was found in a dead state"

Рома
23.05.2017
15:50:22

Google

Andrey
23.05.2017
16:00:12

Липоля Аймаксович
23.05.2017
16:03:07
уже через synchronize сделал. всё скопировалось ?

Konstantin
23.05.2017
17:14:55

Dmitry
23.05.2017
18:44:19
парни, а есть по солту чят?

Denis 災 nobody
23.05.2017
18:48:28
Этот был. Первого апреля.

Dmitry
23.05.2017
18:49:45
а спрошу тут - один хер джинджа и ямль
targets:
host13:
checks:
- icmp
- node
- ports:
- 80
- 22
есть такой ямль
и нужно его распарсить джинжой, чтобы сунуть в другой ямль только в другом виде
и все нормально парсится-разбирается
пока я не упираюсь в
- ports:
- 80
- 22

Sergey
23.05.2017
18:55:06
пока я не упираюсь в
- ports:
- 80
- 22
хитрая вещь - элемент списка, являющийся словарём с одним ключом, по которому лежит список ?)))
похоже, что месье любит боль и унижение.
а какая задача изначально стоит по парсингу этой псевдорадости?

Dmitry
23.05.2017
18:55:38
ну надо сделать удобный конфиг для того чтобы генерить не очень удобный конфиг
{% for check in ["https", "node", "http", "icmp", "ports"] %}
- targets:
{%- for host, properties in pillar.get('targets', {}).iteritems() -%}
{% if check in properties["checks"] -%}
{% if check == 'node' %}
- {{ host }}:9100
- {{ host }}:9126
{%- elif check is iterable %}
blahblah
{%- else %}
- {{ host }}
{%- endif %}
{%- endif -%}
{%- endfor -%}
{% endfor %}
вот как то так сейчас

Sergey
23.05.2017
18:56:41
что ломается?

Dmitry
23.05.2017
18:57:11
да ничего не ломается, просто в итерации с ports пусто
пробовал {%- elif 'ports' in check %}
тоже не едет

Sergey
23.05.2017
19:02:21
я бы при отладке такой конструкции попробовал проверить работу условных блоков

Google

Sergey
23.05.2017
19:02:35
ну и dict - вовсе не iterable

Dmitry
23.05.2017
19:04:38
я думаю что {% if check in properties["checks"] -%} тут просто не отрабатывает

Sergey
23.05.2017
19:06:31
отрабатывает, но не тем способом ? напиши {% else %} блоки для if-ов, результат обещает быть интересным

Dmitry
23.05.2017
19:06:58
{'checks': ['icmp', 'node', {'ports': [80, 22]}]}
вот что в пропертис кстати

Sergey
23.05.2017
19:08:16
я ж тебе так и сказал - портс это словарь (dict или hash)
туплю
не портс - словарь, а тртий элемент списка - словарь с единственным ключом "портс", значением которого является список
так что там пригодится вот эта проверка - http://jinja.pocoo.org/docs/2.9/templates/#mapping
и дальше уже внутри этого словаря проходить циклом по парам "ключ-значение"

Alex
23.05.2017
19:43:00
Вечер добрый. Парни, почему when: ansible_distribution_version не отрабатывает?

Dmitry
23.05.2017
19:44:42

Alex
23.05.2017
19:45:00
Имею вот такую конструкцию:
- name: Copy the binary file (CentOS 7).
copy:
src: binfile_7
dest: /bin/binfile
mode: 0755
when: ansible_distribution_version >= 7
- name: Copy the binary file (CentOS 6).
copy:
src: binfile_6
dest: /bin/binfile
mode: 0755
when: ansible_distribution_version < 7

Dmitry
23.05.2017
19:45:14
targets:
host13:
checks:
- icmp
- node
ports:
- 80
- 22

Sergey
23.05.2017
19:46:04

Alex
23.05.2017
19:48:52
о как. Спасибо

Sergey
23.05.2017
19:54:17

Alex
23.05.2017
20:05:57
вроде не первый день с ансиблом работаю, а это шаманство ненужно было)

Sergey
23.05.2017
20:08:02
а помогло?

Google

Sergey
23.05.2017
20:08:26
дока говорит, что этот фильтр ещё с 1.6 существует

Alex
23.05.2017
20:08:36
сделал изящней
- name: Copy the binary file.
copy:
src: binfile_{{ ansible_distribution_major_version }}
dest: /bin/binfile
mode: 0755

Sergey
23.05.2017
20:12:08
а, ну тож годно. только LFHS не соответствует ?... если хочется красиво - "/opt/provider_name/application_name/bin/binfile" в тренде

Admin
ERROR: S client not available

Alex
23.05.2017
20:15:11
а почему не /usr/local/bin вроде тоже подходит)

Wild One
23.05.2017
20:58:34
Потому что там обычно бардак

Алексей
23.05.2017
21:01:05

Ilya
24.05.2017
12:55:59
Приветствую!
Это нормально что команды которые на выходе дают много строчек инфы не "пролезают" через анзибль? Например: show interfaces fe-0/0/7.0 работает, а show interfaces fe-0/0/7, которая выдает на пару десятков строк больше 0 нет.

Anatoly
24.05.2017
13:01:28

Ilya
24.05.2017
13:01:48

Николай
24.05.2017
13:09:18
У меня ansible 2.2.1.0
show run забирает нормально

Ilya
24.05.2017
13:52:41

Николай
24.05.2017
14:00:49
Это при запуске ansible? Как вы его ставили?

yaroslav
24.05.2017
14:04:18
git clone наверно.

Ilya
24.05.2017
14:05:26
при выполнении плейбука
вот собственно сам бук

Google

Ilya
24.05.2017
14:06:37
подозреваю, что нет каких-то зависимостей Питона, либо система не может их найти, получается

Николай
24.05.2017
14:08:29
Я тоже так думаю. Я ставил через pip, он всё нужно всасывает

Anatoly
24.05.2017
14:09:10

Ilya
24.05.2017
14:10:01

Николай
24.05.2017
14:11:00
Да

Ilya
24.05.2017
14:11:13
странно, делал то же самое...

Anatoly
24.05.2017
14:11:18

Ilya
24.05.2017
14:11:31

Anatoly
24.05.2017
14:11:45
окей

yaroslav
24.05.2017
14:11:56
#cat /etc/ansible/roles/Juniper.junos/library/junos_get_facts | grep import
import os
import json
from distutils.version import LooseVersion
from jnpr.junos import Device
from jnpr.junos.version import VERSION
from netconify.cmdo import netconifyCmdo
from netconify.constants import version
import logging
from ansible.module_utils.basic import *
Все модули успешно импортируются?

Anatoly
24.05.2017
14:12:10
а теперь конкретно по вашим траблам, у вас gather_ facts: no
и оно собственно и ругается на то что не может полуить доступа к оному