Andrey
вангую дело в ~
а как домашнюю директорию пользователя взять, под которым sudo запускается?
Igor
сделать sudo pwd от него и посмотреть что там написано
sadsad
🐷
либо lookup env home
Павел
з
Nik
Привет, есть вопрос по AWX(или пните, где его стоит задавать). Если я настраиваю доступ к хостам по ключу, то могу ли я повыщать привелегии без пароля. То есть у меня есть N машин, на которые я буду логиниться не под рутом с AWX машины. На ней я сгенерировал ключ, раскидал по этим машинам, но мне нужны повышенные привелегии. Простити за нубский вопрос
Nik
ну то есть это уже не awx область, а вопрос "sudo без пароля при доступе по ключу" в целом
Nik
понял, спасибо
Nik
я понял, спасибо, прост не очень хотелось это почему-то делать, но видимо третьего не дано
Grek 🇺🇦
ansible_become_pass
Пропиши в инвентори к тем хостам
Sergey
Grek 🇺🇦
Не с одинаковым, а с тем, который ты знаешь. Инвентори для каждого такого хоста пропиши доп опцию
Gunnery
Gunnery
жаль только, что такое невозможно ( у меня не получилось) сделать на этапе установки ОСи (в preseed файле debian-installer'а )
元帥
Привет, подскажите в какую сторону смотреть. Есть задача написать сценарий ansible для расширения дисков на стороне vmware и внутри linux (с lvm). На стороне vmware все сделал, а вот как правильно найти соответствующие диски (которые были расширены) внутри линукса, не знаю, пытался найти что-то общее между ansible_facts и vmware_guest_disk_facts. Ansible версии 2.8.5.
Grek 🇺🇦
не мучаться с ансиблом и заюзать cloud-init. который расширит тебе партишн и фс на старте системы
Dmitry
Dmitry
Обычно модуль после отработки что-то возвращает, скорее всего он тебе может вернуть список дисков, которые менял
Stefan
привет, юзаю модуль synchronize
- name: Sync nginx_configs dir on the server
synchronize:
src: "$CI_PROJECT_DIR/nginx_configs/"
dest: "/home/{{ ansible_user }}/nginx_configs"
delete: yes
recursive: yes
links: yes
подскажите, почему он добавляет перед переменной $CI_PROJECT_DIR - /etc/ansible?
из-за этого не могу синкнуть файлы:
change_dir \"/etc/ansible/builds/bar_site/nighty_avenue/nginx_configs\" failed: No such file or directory
Grek 🇺🇦
наверное потому что это такая переменная, используй относительные пути от playbook_dir, к примеру
Aleksey
А пробовал симлинк на ansible.cfg?
Grek 🇺🇦
зачем хранить cfg отдельно? на каждый проект свой, храни его в корне с плейбуком, и организуй все правильно. даже если проект и плейбуки отдельно хранятся - перед выполнением сложи все в одно место
Stefan
Stefan
Vitalii
Кто-то пробовал держать роли в гите и юзать их в плейбуке без отдельного запуска команды ansible-galaxy install -r ....
Grek 🇺🇦
хм, не
ну. тут надо с 2 сторон смотреть - если запускать не из CI - работает?
и на сколько я понимаю использовтаь CI переменные в плее - не очень. переопредели их через vars, это даст гибкости
Stefan
Sergey
Stefan
Stefan
Grek 🇺🇦
и твой плейбук станет самодостаточным
Aleksey
А нет переменной окружения, которая указывает на конфиг разве?
Stefan
Sergey
Stefan
Grek 🇺🇦
ну, выглядит так...
убери гитлаб переменную из плейбука, пропиши ручками, проверь что работает, потом сложи все что надо копировать тут же в папу files и ходи к ней через files/ или через {{playbook_dir}}/files
Grek 🇺🇦
Stefan
Sergey
та гитлаб же)
Гитлаб сам не исполняет плейбуки. Или я что-то пропустил?
Stefan
Grek 🇺🇦
Гитлаб сам не исполняет плейбуки. Или я что-то пропустил?
а вот кстати - да, в файле он не воспринимает это как свою переменную по-ходу, когда-то мучался с таким в тимсити. но потом ушел от CI-йных переменных и все переписал на относительные пути. и ее надо передать через экстра варсы. о чем я и писал выше
Grek 🇺🇦
Stefan
Grek 🇺🇦
у каждого свой путь)
Stefan
у каждого свой путь)
- name: Generate nginx config
connection: local
template:
src: sites.conf.j2
dest: "{{ inventory_dir }}/../nginx_configs/{{ item.domain_name }}.conf"
with_items: "{{ bar_sites }}"
- name: Sync nginx_configs dir on the server
synchronize:
src: "{{ inventory_dir }}/../nginx_configs/"
dest: "/home/{{ ansible_user }}/nginx_configs"
delete: yes
recursive: yes
links: yes
при том что просто копирнул конфиг да и всё
всем спасибо
Vladislav 👻
Подскажите, кто как делает закидывание архива и распаковку на сервер идемпотентно и чтобы по времени это было минимально, ибо архив большой?
🐷
хранить архив отдельно в хранилище, веб-сервере и т.д. и оттуда скачивать
Vladislav 👻
это логично, но unarchive делает следующее, он сначало качает архив, потом распаковывает во времянку и потом сравнивает файлы
Vladislav 👻
если архив приличного размера, то проверка будет занимать овер времени
🐷
можно проверять when: downloaded.changed
Vladislav 👻
это в рамках одного модуля
Vladislav 👻
или предлагается отдельно качать и отдельно распаковывать?
Sergey
Vladislav 👻
а можно чуть подробнее, как это можно организовать?
Vladislav 👻
не до конца понял, где хранить md5, когда его вычислять и прочее?
Vladislav 👻
можно примером тасок 😬
Sergey
1. качаешь архив
2. считаешь его md5
3. сравниваешь полученный хэш с тем, что лежит в /etc/facts.d
4. если одинаковые - ничего не надо делать
5. если разные - разворачиваешь куда нужно, обновляешь хэш
Sergey
Примеров тасок не будет - я такие штуки не делаю.
Vladislav 👻
ок, спасибо, пойду погуглю про /etc/facts.d
Sergey
вот для md5 https://docs.ansible.com/ansible/latest/modules/stat_module.html
Vladislav 👻
👍🏻
Sergey
ок, спасибо, пойду погуглю про /etc/facts.d
Да тут всё, в принципе, гуглится. Только добавлю ещё, что некоторые репозитории (в коммерческой версии точно) md5 прям рядом хранят, то есть качать отдельно и считать ничего не надо.
🐷
как архив скачивается то? в get_url делаем register result, в unarchive добавляем when: downloaded.changed
🐷
если в get_url добавить checksum, то changed будет реагировать на изменение checksum, а не атрибутов
Full
zhag
Как просто в консоли проверить функцию?
zhag
Транкейт не транкейтит
zhag
У терраформа есть консоль
zhag
А у ансибла?