Dima
ну тут кроме как через when не сделать
Dima
через when пробовал?
# Obtain the stats of /etc/foo.conf, and check that the file still belongs
# to 'root'. Fail otherwise.
- stat: path=/etc/foo.conf
register: st
- fail: msg="Whoops! file ownership has changed"
when: st.stat.pw_name != 'root'
Dima
http://docs.ansible.com/ansible/stat_module.html#examples вот короче примеров там
Dmitriy
yopp
о
yopp
yopp
а вот - { include: bla.yml, when: foo == false } интересно
yopp
Dima
да, очень удобно, спасибо.
yopp
я правильно понимаю что host_vars перекроет vars из плейбука?
yopp
а чо, таска на cp -r нет? :(
Dima
да, там факаут )))
Dima
используешь copy или fetch?
Dima
короче для copy это работает без loop вот так:
- name: transfer all files in directory to target host
become: yes
copy: src=local_dir dest=/root/directory/
tags: transfer
Dima
local_dir у тебя в папке с плейбуком лежит, в ней сколько угодно файлов
yopp
мне надо на хосте покопировать :(
Dima
интересный вопрос!
Dima
я это делал, через with_items.
Dima
пример надо?
yopp
не, мне именно аналог cp -r надо
yopp
там исходники ядра надо переложить в другое место :)
Dmitry
пацаны из фабрика отаке эгэйн? :)
Dmitry
надо "переложить", поставь симлинк бля :)
Dmitry
(ко вчерашнему разговору об отличиях программистов и админов - у программиста одна извилина обычно) :)
Dima
- name: create separate directory
file: path=New.Directory state=directory
tags: transfer
- name: copy all files to separate directory
become: yes
shell: cd Old_Directory; find . -type f -exec cp {} New.Directory/ \;
tags: transfer
Dmitry
^^^ вот это и называется
пацаны из фабрика лезут на свет
yopp
Dmitry
нужно больше шелла в ансибле, больше шелла
Dmitry
идемпотентность во все поля сука
yopp
мне надо из папки а положить файлы в папку б, в которой уже лежит всякое говно
Dmitry
хоть бы creates добавили, уебашки программистские, из чего угодно сделают скрипт на баше
Ivan
yopp
и всё это говно собрать
yopp
yopp
pun intended
yopp
щас мне начнут overlayfs предлагать, да? :)
yopp
смонтировать одно поверх другого
Dmitry
при следующем прогоне плейбука тоже качаются? и тоже find ? :D
shell: cd Old_Directory; find . -type f -exec cp {} New.Directory/ \;
вот это говно каждый раз, судя по его плейбуку. да давитесь своей хуйней на баше, кто вас неволит
yopp
Dima
Дмитрий… ты нам покажи правильный путь, направь ))))))
yopp
яб с удовольствием через copy module с copy=no сделал, но оно чексумму проверять не умеет
Dmitry
не начнут предлагать. собирать на сервере что-то - это тоже очень "по-программистски", если тебе скажут, что надо собрать один раз, положить в репозиторий, и плейбуком оттуда ставить, ты скажешь, что админишка не вник в твою охуительную задачу
Dima
давай, пример ) в лучших традициях ansible-way
yopp
Dima
ну не плейбук а пример хотя бы. он билет на ansible fest же не обеспечит, поделись опытом? а то одни эмоции
Dima
а мы все спасибо скажем и будем использовать
Dmitry
хотя бы вот так
Dmitry
я тебе ошибку оставил, чтобы ты чуток мозгами пошевелил
Dmitry
дальше там сам :)
Dmitry
ошибка причем не синтаксическая, а в логике :)
Dima
не вижу пока ошибку, у меня это работает, может быть менял имена директорий и что-то стер
yopp
Dmitry
нет :) там ничего не стерто, там добавлено две строчки
Dmitry
Magistr
Lex
Dmitry
gcc на сервере нужен для того, чтобы руткит собрать проще было :)
Denis 災 nobody
Вот да, никаких гцц на продакшене недопустимо
Lex
Dmitry
Denis 災 nobody
Но я сам ищу баланс между "пакет на любой чих" и прямая выкатка тем же ансиблом
Dmitry
Denis 災 nobody
Ядро да
yopp
Denis 災 nobody
Но у меня и юм-репо на нашу репу так же пакетом, чтобы централизованно обновлять спек
Denis 災 nobody
С 1 файлом
Dmitriy
вашу проблему с копированием надо модулем synchronize или как он там
Dima
а кстати модуль sync же есть, он умеет синхронизировать две удаленные папки?
Dmitriy
рсинком в общем
Dima
хахахаха
Dmitriy
он правда по уебански работает, надо бы переписать
yopp
в словах @cadmi быда некоторая доля смысла, так что я собрал dkms и выяснилось что dkms умеет весело делать deb