Sheridan
я потом это передавать буду в delegate_to
Dave
Ask HN: What is key to good technical documentation? (Score: 100+ in 11 hours) Link: https://readhacker.news/c/495EZ Imagine you are a junior software developer who is entering a relatively large and complex project with 150,000 lines of code. It is not some web software, but something way more complex, say an embedded system, or a navigation system, or a digital camera, or maybe a complex device for medical imaging. It is a lot of code in different languages. What you know is that the major aspects are working but there still might be some problems. And of course, management is eager for you to get stuff up and running, as the project is already severely delayed, needs to be shipped as soon as possible, and the customers and investors are getting impatient. There is only one problem - all the three senior engineers which were working on the codebase have left suddenly, only their manager is still there, and you have to start with reading and understanding the code, and what needs to be done. It is somewhat commented, but, of course, it is not easy to understand. And as it looks, the previous developers did not had any time to leave you proper technical documentation! What are you going to tell the manager? But then, suddenly, a fairy godmother appears, which has a magic wand in her hand. It is a kind and witty documentation fairy, and she says: "I will fulfil you a single wish. By my magical powers, I will give you exactly the documentation which you think is most important. It can be anything you want. Anything! The only condition is, it must not be more than a good software developer can produce in a month." What do you wish for?
Отделение Bereke Bank
[monitoring] host-mon monitoring_collector=yes deployer host-02 host-03 host-04 Нужен список хостов с установленным monitoring_collector=yes
на ум приходит создание группы (add_hosts) через пробег по all и условием when: monitoring_collector is defined
Aleksandr
я потом это передавать буду в delegate_to
так и добавь в when: monitoring_collector is defined and monitoring_collector == 'yes' а в delegate_to: ansible_host
Sheridan
идея, да, спасибо
Timur
Опять странное
Timur
Sheridan
на самом деле проще создать группу отдельную с одним хостом в ней
V
Добрый день, коллеги. Подскажите пожалуйста, в плейбуке задание на перезагрузку сетевой железки виснет при этом железка ребутится нормально. Как заставить ансибл выйти из зависания и перейти к следующему таску?
V
Таской модуля телнет.
Boris 🦍
- name: set pass hosts: local gather_facts: false connection: local vars: db_conf: - login: "user1" password: "xxxx1" - login: "user2" password: "xxxx2" - login: "user3" password: "xxxx3" tasks: - name: Set pass set_fact: db_password: "{{ item.password }}" with_items: "{{ db_conf }}" when: "{{ item.login == 'user1' }}" - name: Print pass debug: msg: "user1 has a password {{ db_password }}" Привет, есть ли способ более красивый, чем использую я для определения переменной db_password. Напрмиер с помощью лупа, или дикта, или фильтра. вариантов много . НО какой наиболее практичный в данном кейсе?
Timur
Отобрать из списка словарей конкретное значение?
Boris 🦍
Timur
'{{ db_conf | selectattr("login" ,"equalto", "user1") | map(attribute="password") | list | first }}'
Timur
Вот такой набор фильтров должен дать то, что нужно, без цикла
Boris 🦍
Вот такой набор фильтров должен дать то, что нужно, без цикла
ниче так портянка) .. но спасибо .ща почитаю..
Timur
Рекомендую статью с примерами: https://www.tailored.cloud/devops/advanced-list-operations-ansible/
Oleg
подскажите плиз модуль parted делает команду pvcreate ? тч выполнив таску я могу быть уверен, что не надо уже выполнять pvcreate?
George
По крайней мере, обратной инфы у меня нет
Oleg
По крайней мере, обратной инфы у меня нет
вот и я что то не могу найти. спасибо!
Oleg
значит опять shell(
George
зачем? разве нет модуля для lvm?
Sheridan
я из них не выбирался :)
Sergey
вот и я что то не могу найти. спасибо!
https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/system/lvol.py
George
ехал филтер через филтер
Sergey
Sergey
опенсорс жи!
Oleg
https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/system/lvol.py
но это про логические тома, а мне надо после fdisk создать физический
Lamobot
спс, тут что то реали есть про это
Просто если ручками ты делаешь pvcreate - vgcreate - lvcreate То в ансибле сделали pvcreate и vgcreate в один модуль - lvg
Sergey
- host atlas-nsk-1: ip: 172.16.188.1 mac-address: 00:50:56:A4:92:D2 hostname: trololo.test.local - host atlas-nsk-2: ip: 172.16.188.2 mac-address: 00:50:56:A4:92:D1 hostname: trololo1.test.local
Sergey
Подскажите плиз как вот такой yml запихать в словарь ансибла , а затем разобрать в jinja
Sergey
В jinja скорее всего через цикл выводить
Timur
Это в файле?
Timur
Или где?
Sergey
в файле ) йамл )
Timur
тогда include_vars
Sergey
fatal: [atlas-nsk-ns-01]: FAILED! => {"ansible_facts": {"production": {}}, "ansible_included_var_files": [], "changed": false, "message": "/home/user/dhcp-host-reservation/playbook/production.yml must be stored as a dictionary/hash"}
Timur
Почитайте доку по модулю
Timur
Там все просто
Sergey
- name: Импортирую vars из файла production.yml include_vars: file: production.yml name: production
George
Синтаксис YaML хорошо бы прочитать для начала (ссылки в пине)
так у коллеги так-то валидный ЯМЛ вроде как
Timur
host atlas-nsk-1 Такое явно не покатит.
George
ну, маки разве что закавычить
Sergey
Timur
Пробелы и дефисы в ключах
George
Пробелы и дефисы в ключах
хорошо, подловили.
Sergey
?
George
- host: atlas-nsk-1 ip: 172.16.188.1 mac: "00:50:56:A4:92:D2" hostname: trololo.test.local - host: atlas-nsk-2 ip: 172.16.188.2 mac: "00:50:56:A4:92:D1" hostname: trololo1.test.local
George
я бы сделал так
George
и потом тупо итерировал по нему
Sergey
George
а можешь заблюрить посильнее, чтоб вообще нельзя было прочитать, что там написано?
Sergey
fatal: [atlas-nsk-ns-01]: FAILED! => {"ansible_facts": {"production": {}}, "ansible_included_var_files": [], "changed": false, "message": "/home/user/dhcp-host-reservation/playbook/production.yml must be stored as a dictionary/hash"} fatal: [atlas-nsk-ns-02]: FAILED! => {"ansible_facts": {"production": {}}, "ansible_included_var_files": [], "changed": false, "message": "/home/user/dhcp-host-reservation/playbook/production.yml must be stored as a dictionary/hash"}
Timur
Списки ансибл не импортирует напрямую
George
Списки ансибл не импортирует напрямую
ну, окей будет: data: - host: atlas-nsk-1 ip: 172.16.188.1 mac: "00:50:56:A4:92:D2" hostname: trololo.test.local - host: atlas-nsk-2 ip: 172.16.188.2 mac: "00:50:56:A4:92:D1" hostname: trololo1.test.local
Sergey
--- - hosts: dhcp become: true vars: local_repo: /home/ansible/dhcp-configs dhcpd_base_dir: /etc/dhcp dhcpd_backup_dir: /etc/dhcp.bak tasks: - name: Импортирую vars из файла production.yml include_vars: file: production.yml name: production - name: Делаем бэкап {{ dhcpd_base_dir }}/ command: rsync -a {{ dhcpd_base_dir }}/ {{ dhcpd_backup_dir }}/ # - name: Копируем конфиг из репозитория в {{ dhcpd_base_dir }}/ # command: rsync -a {{ local_repo }}/production.conf {{ dhcpd_base_dir }}/ - name: Cоздаю из шаблона конфиг для dhcp template: src: "dhcp_res.j2" dest: "/etc/dhcp/production.conf" mode: "0644" owner: root group: root force: yes - name: Reloading dhcpd service systemd: name: dhcpd state: restarted
George
дальше надо смотреь dhcp_res.j2 - что там внутри
George
он парсит переменную production
Sergey
оки спасибл )
Sergey
щас поковыряю
Timur
😳