Sergey
NS 🇷🇺
если плейбук без фильтра стартануть по хостам он у вас пройдет по всем, что указано там
Sergey
"У нас" плейбуки ходят только по тем хостам, которые указаны в hosts.
NS 🇷🇺
Sergey
да и по ним же собираются факты
Но если в плейбуке написать не один плей, а, например, два - первый для сбора фактов с той группы хостов, и второй - для выполнения всего остального.....
Anonymous
NS 🇷🇺
George
Скажите, какие абстракции рвёт вот этот код?
- delegate_to: localhost
command: reset
George
George
Этого достаточно 😂
George
Ага. Так же как и transport: lxc рвёт локальную консоль. Приходится чинить.
Sergey
George
Сарказм и духовная усталось от подпирания идиотскими багфиксами идиотских багов.
Никита
У кого есть книга Запускаем Ansible? Поделитесь в лс :)
George
George
Ты только что описал всю суть айти
Наша интеллектуальная собственность состоит из говна, палок и интеллектуальной собственности, причём опереться в этом списке можно только на палки?
George
Sergey
Sergey
Её сюда постили хзскока
Никита
Sergey
Хм, ты на русском, что ли, хочешь?
Никита
Никита
нет
George
Никита
Никита
книжка хорошая кстати, стоит свой косарик
Никита
Я понимаю если в документацию лезть, то да, читаешь в оригинале, но зачем мне, для усвоения принципов и базовых понятий в оригинале читать? Гораздо легче понимать на родном языке.
Sergey
Sergey
"....Но принтер, плоттер, файл, дискета -
Увы, сих слов на русском нету..."
(С) не я, читал где-то давно
Никита
мне стартануть никакие статьи и книги не помогли
помогли реальные задачи с дедлайнами
Никита
Никита
Никита
что такое плей?
Sergey
Вот и приехали. Это то, из чего состоят плейбуки.
George
Anonymous
@Qwerty_Sewr 2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'peer', 'status']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'volume', 'info']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'peer', 'probe', 'gluster2.local']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'volume', 'create', 'gv0', 'replica', '2', 'transport', 'tcp', 'gluster1.local:/data/gluster/gv0/', 'gluster2.local:/data/gluster/gv0/', 'force']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'volume', 'info']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'volume', 'start', 'gv0']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'volume', 'add-brick', 'gv0', 'replica', '2', 'gluster1.local:/data/gluster/gv0/', 'gluster2.local:/data/gluster/gv0/', 'force']
Qwerty
@Qwerty_Sewr 2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'peer', 'status']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'volume', 'info']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'peer', 'probe', 'gluster2.local']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'volume', 'create', 'gv0', 'replica', '2', 'transport', 'tcp', 'gluster1.local:/data/gluster/gv0/', 'gluster2.local:/data/gluster/gv0/', 'force']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'volume', 'info']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'volume', 'start', 'gv0']
2019-08-19 INFO: main.run_gluster: run_gluster: args=['/usr/sbin/gluster', '--mode=script', 'volume', 'add-brick', 'gv0', 'replica', '2', 'gluster1.local:/data/gluster/gv0/', 'gluster2.local:/data/gluster/gv0/', 'force']
Отрабатывает?
Qwerty
Версия гластера?
Anonymous
нет
Anonymous
тоже самое
Anonymous
выше вывод, что он там запускает через шелл
Anonymous
# gluster --version
glusterfs 4.1.9
Anonymous
минутку
Anonymous
Anonymous
https://pastebin.com/Hyayp32A
Anonymous
пытается выполнить две команды
Anonymous
/usr/sbin/gluster --mode=script volume create gv0 replica 2 transport tcp gluster1.local:/data/gluster/gv0/ gluster2.local:/data/gluster/gv0/ force
/usr/sbin/gluster --mode=script volume add-brick gv0 replica 2 gluster1.local:/data/gluster/gv0/ gluster2.local:/data/gluster/gv0/ force
Anonymous
на 7 падает
Anonymous
если в шелле выполнять
Qwerty
на 7 падает
Да. Так как волюм создан уже из этих бриков.
Anonymous
угу
Anonymous
может быть это работает в 3 версии, но в 4той увы
Dmitry
Я понимаю если в документацию лезть, то да, читаешь в оригинале, но зачем мне, для усвоения принципов и базовых понятий в оригинале читать? Гораздо легче понимать на родном языке.
1. Ты читаешь не оригинальную книгу, а перевод. Она может содержать дополнительные неточности.
2. Зачастую бывает так, что переводят книгу переводчики без технического бэкграунда и переводят в том числе термины. Переводят так, что иногда нужно сидеть и пытаться мысленно осуществить обратный перевод, потому что переводчик выбрал нечто не самое понятное
3. Если тебе все равно предстоит постоянно читать документацию на английском, то почему бы заодно не практиковаться, читая на английском всю техническую литературу?
Qwerty
Anonymous
Anonymous
пока предлагаю закомментировать
Anonymous
# if new_bricks:
# add_bricks(volume_name, new_bricks, stripes, replicas, force)
# changed = True
Anonymous
/lib/python2.7/site-packages/ansible/modules/storage/glusterfs/gluster_volume.py
Qwerty
Anonymous
или лучше даже скопировать его в library текущего проекта, переименовать в fix_gluster_volume.py
Anonymous
и вызывать по имени
Anonymous
- name: create GlusterFS Volume
fix_gluster_volume:
state: present
George
George
Владислав
Поделитесь экспертным мнением, такая конструкция вообще законна?
(не осилил формирование json без модуля template)
copy:
dest: "/tmp/{{ item }}.json"
content: "{{ lookup('template', 'targets.yml.j2') | from_yaml | to_nice_json }}"
targets.yml.j2
---
{% for host in groups[item] %}
- targets:
- {{ hostvars[host]['ansible_host'] }}:{{ hostvars[host]['node_exporter_port'] }}
labels:
instance: {{ hostvars[host]['inventory_hostname_short'] }}
fqdn: {{ hostvars[host]['inventory_hostname'] }}
{% endfor %}
Alexander
Имеется роль
В files лежит target.jar
Как правильно написать src для copy в таком случае?
Владислав
Alexander
Отлично, спасибо
Alexander
Подскажите, как правильно использовать loops в таком случае:
tasks/main
- name: Import via API
uri:
url: "{{grafana_urls}}/api/dashboards/db"
method: POST
headers:
Accept: "application/json"
Content-Type: "application/json"
Authorization: "Bearer {{api_key}}"
status_code: 200
body_format: json
body: "{{ lookup('file','dashboard.json') }}"
и vars/main
grafana_urls:
- http://grafana1.url
- http://grafana2.url
- http://grafana3.url
api_keys:
- eyJrIjoiRmxSZ0pLdDd
- disduysydusydysdusd
- djskdjksjdwuieiufdf
Alexander
Нужно чтобы первый элемент urls запускался с первым keys, второй со вторым и тд