Stas
Но я понял ошибку, спасибо!
GDI
Коллеги, всем привет, а у нас есть тут люди кто внедрял ансимбл в CI CD?
Div
inqfen
Ты вопрос задай
Div
Вот-вот.
GDI
Ты вопрос задай
Мне больше интересно опыт, подводные камни, кто с чем столкнулся)
Stas
Div
Div
На жэке через плагин или баш. Гитлаб и того меньше танцев.
GithubReleases
aelsabbahy/goss description changed: v0.3.10
Link: https://github.com/aelsabbahy/goss/releases/tag/v0.3.10
Release notes:
release v0.3.10
GithubReleases
aelsabbahy/goss description changed: v0.3.10
Link: https://github.com/aelsabbahy/goss/releases/tag/v0.3.10
Release notes:
# Features
Many thanks to all the contributors on this release!
## In this release
* Fix udp reachable check ([#545](https://github.com/aelsabbahy/goss/pull/545))
* [[#439](https://github.com/aelsabbahy/goss/issues/439)] Add --vars-inline that...
More
Alex
а есть ли принципиальная разница между
hostvars['SRV1']['field1'] vs hostvars['SRV1'].field1
?
Aleksey
Lev
Aleksey
потому что аттрибут класса
Aleksey
Python 3.6.9 (default, Nov 7 2019, 10:44:02)
class A:
test = 1
%timeit A.test
23.9 ns ± 0.223 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
B={}
B["test"]=1
%timeit B["test"]
24.8 ns ± 0.137 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
Aleksey
Python 2.7.17 (default, Nov 7 2019, 10:07:09)
In [1]: class A:
...: test = 1
In [2]: %timeit A.test
The slowest run took 53.63 times longer than the fastest. This could mean that an intermediate result is being cached.
10000000 loops, best of 3: 25.9 ns per loop
In [3]: B={}
In [4]: B["test"]=1
...: %timeit B["test"]
The slowest run took 48.11 times longer than the fastest. This could mean that an intermediate result is being cached.
10000000 loops, best of 3: 24.8 ns per loop
Boris 🦍
Привет, вопрос философсикй. Нужно ли стремиться к 100% идемпотентности. Т.е state ok вместо changed ? Или это глупости. Ведь не редко, когда меняется контрольная сумма, например, директории с изменяемыми данными внутри. Поэтому, статус таски мостоянно может быть changed. Считается, ли в таком случае, что я нарушаю идеологию ансибла о идемпотентности, но фактически не афекчу свое окружение.
Aleksey
считается
Aleksey
если ансибл что то поменял значит система приведена в другое состояние
Alex
Ждун
везде где не надо считать изменения можно указать про это в плейбуке, всегда надо стремиться к идемпотентности
Ждун
changed_when: False
Lev
а есть цифры какие-нибудь?
@freeseacher от души набросил конечно, я не удержался и решил проверить. не сильно большая разница. но есть.
test_square.yml 100:
real 0m7.335s
user 0m6.541s
sys 0m0.454s
test_dot.yml 100:
real 0m7.502s
user 0m6.751s
sys 0m0.456s
test_square.yml 1000:
real 0m48.537s
user 0m50.381s
sys 0m1.728s
test_dot.yml 1000:
real 0m49.145s
user 0m51.123s
sys 0m1.768s
плэйбуки
cat test_dot.yml
---
- hosts: lindev-lgonchar2
tasks:
- copy:
dest: /tmp/test_dot.txt
content: |+
{% for key in lookup('sequence', 'start=1 end=1000').split(',') %}
{{ hostvars[inventory_hostname].ansible_date_time.date }}
{{ hostvars[inventory_hostname].ansible_date_time.day }}
{{ hostvars[inventory_hostname].ansible_date_time.epoch }}
{{ hostvars[inventory_hostname].ansible_date_time.hour }}
{% endfor %}
test_square.yml
---
- hosts: lindev-lgonchar2
tasks:
- copy:
dest: /tmp/test_square.txt
content: |+
{% for key in lookup('sequence', 'start=1 end=1000').split(',') %}
{{ hostvars[inventory_hostname]['ansible_date_time']['date'] }}
{{ hostvars[inventory_hostname]['ansible_date_time']['day'] }}
{{ hostvars[inventory_hostname]['ansible_date_time']['epoch'] }}
{{ hostvars[inventory_hostname]['ansible_date_time']['hour'] }}
{% endfor %}
Alex
Alex
больше никаких подводных камней нет?
Aleksey
Aleksey
или у тя вдруг ансибл не поверх питона работает :)
Alex
Aleksey
дак они проверяемые тесты то
Aleksey
Лев просто хотел в E2E тесты
Ivan
опять вы в свои непонятные буквы тут играете
Sergey
по идее, на разных развесистых клюквах може подтормаживать
Lev
Alex
Serg
Добрый день всем, кто-нибудь может подсказать, может ли awx использовать для каждого хоста в инветнтори свой закрытый ключ, наподобие ansible_ssh_private_key_file в inventory самого ansible
Lev
Sergey
Timur
@ultralisc большое спасибо за наводку на pulp project :)
Kirill
Всем привет. Есть норм мануалка по доступу ansible по ssh, но через openvpn?
Kirill
Чтобы ansible сначала делал коннект vpn и потом уже запускал плейбуки
inqfen
tasks:
- name: start vpn
delegate_to: localhost
- name: edem dalshe
inqfen
Ну лучше через отдельный hosts конечно
inqfen
Но вообще еще лучше так не делать, странный кейс
Kirill
уже передумал)
Ivan
товарищи!
помогите починить красиво.
есть таска в initial-плейбуке
- name: initial 1. Installing python for Ubuntu and Debian
tags:
- initial
- skip_ansible_lint
raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
register: output
changed_when: output.stdout != ""
при проходе на тестах через ansible lint ругается на 602 Don't compare to empty string
как правильно поменять?
inqfen
Пустая строка false
inqfen
changed_when: output.stdout
inqfen
Если строка не пуста, то она true
Ivan
Peter
Добрый вечер, коллеги.
Заметил интересное поведение, прошу направить если ошибаюсь.
Есть заголовок в файле к примеру такой:
#
# serial number =
Хочу убрать одиночный символ '#'
# < его
# serial number =
- name: Remove symbol #
lineinfile:
path: /testfile
state: absent
regexp: '^#$'
Не работает, меняю регулярку на '^#.$' работает. Когда пишу регулярки пользуюсь https://regex101.com/ и там вообще обратный результат.
Пример упрощен.
Ansible v2.8.8
Python 3.6
Андрій
Peter
Андрій
Peter
>>> re.search(r'^#$', symbol)
<re.Match object; span=(0, 1), match='#'>
>>> re.search(r'^#.$', symbol)
>>>
А в ansible результат обратный.
Lamobot
Peter
Roman
Всем привет. подскажите как правильно использовать теги? хочу отдельно запустит вот такой кусок
- name: Set resolv.conf Domain Boston
tags : -resolv
template:
src: ~/documents/ans/templates/resolv_boston.j2
dest: /etc/resolv.conf
owner: root
group: root
mode: 0644
UglyKoyote
Артём
Gunnery
Gunnery
и да, товарищ @UglyKoyote внимательнее меня
UglyKoyote
ну кстати не, я думал вопрос как "корректно" использовать" теги, а не как запустить с тегом)
元帥
Всем привет, как подружить with_dict и when?
元帥
Выдаёт ошибку типа 'list object' has no attribute 'use_sudo'
UglyKoyote
元帥
У меня есть dictionary с группами, внутри которых есть атрибут use_sudo: yes (или no)