Dmitry
если ты дергаешь формулу через salt-api webhook, то в ней тебе доступна примерно такая штука
{% set blabla = data.get('post', {}) %}
ensure_not_used_lvm:
lvm.pv_absent:
- name: {{ blabla.pillars.pvname }}
Dmitry
то есть чтобы работало без исправления формулы (переменные были одни и те же), наверное надо наколхозить вверху что-то типа
set pvname = blabla.pillars.pvname
Sergei
Да, мне вот эта штука и нужна ))) Спасибо. Там в документации черт ногу сломит 😞
Dmitry
но мне кажется, можно как-то проще
Dmitry
попробуй вот такую JSON payload, а?
{
"client": "local",
"tgt": "*",
"fun": "state.apply",
"arg": ["test","test=True"],
"pillar": {
"pvname": "/dev/sda/"
}
или
{
"client": "local",
"tgt": "*",
"fun": "state.apply",
"arg": ["test","test=True"],
"kwarg": {
"pillar": {
"pvname": "/dev/sda/"
}
}
}
я точно не помню, попробовать не могу - нет сейчас salt под рукой
Dmitry
по-моему, дело просто либо в pillars у тебя вместо pillar, либо в kwarg - склероз изменяет уже
Dmitry
еще помнится, что название формулы передавалось вроде через "mods": "my_cool_state", а не через "arg", но это вообще хз, я трогал когда еще salt-api отдельно ставился, а потом его в главную репу впилили вроде, мало ли что там переделали
Dmitry
может еще fun на самом деле state.sls, а не state.apply
или воообще state.orchestrate :D
Sergei
спасибо, попробую обязательно ))
Dmitry
ставлю на pillars вместо pillar, мне кажется если ты заменишь у себя множественное число на единственное, оно просто заработает само, без приседаний с data.get('post', {})
если не заработает, тогда попробовать fun state.sls, название формулы в mods, и pillar в kwarg
напиши потом, как оно
Sergei
Все получилось так:
pillars на pillar
в качестве переменной указал pillar.pvname
Заработало без set))
Sergei
json:
{
"client": "local",
"tgt": "*",
"fun": "state.apply",
"arg": ["test","test=True"],
"kwarg": {
"pillar": {
"pvname": "/dev/sda/"
}
}
}
Sergei
state:
ensure_not_used_lvm:
lvm.pv_absent:
- name: {{ pillar.pvname }}
Dmitry
yep, just a typo :D
Magistr
http://paste.omsklug.com/5098/
А чего нехватает в этом коде ?
тут ругаеться что 'dict object' has no attribute 'item'
Denis 災 nobody
делаеть.. 🙈
Denis 災 nobody
он ругаеться, мы ругаемься, они ругаються.. срочно учим новые слова 😂
niko
Можт пробелов между фигурными скобками
Ivan
Парни, а есть где-нибудь дока по ansible-console
Dmitry
Magistr
http://paste.omsklug.com/5099/ а переменная выглядит вот так
Magistr
и из нее мне нужно содержимое stdout
Maxim
всем привет! У меня есть несколько файлов (rolename/vars/var_filename.yaml) лежат, при этом фактически роль одинаковая для всех, в rolename/tasks/main.yaml просто идет include_vars: var_filename.yaml, и затем include: configure.yaml. Подскажите как декомпозицию получше сделать, а то уже всю голову сломал. Можно как то в роль передать файл с переменными? по аналогии с { role: common, variable_name: '{{ VAR }}' } ?
Ivan
> @mbaran0v
host_vars/group_vars не пробовал?
Maxim
по факту там хост один, ролью раскатываются сайты (разные)
Magistr
по сути задача в fstab прописать маунтпоинты с UUID
Dmitriy
Maxim
Dmitriy
С ролями, угу. Если роль одна и хост один - наверное это удобнее будет менеджить
Dmitry
Maxim
Dmitriy
Как часто вообще эту роль запускать надо и как часто надо в неё руками лазить?
Maxim
ролей там несколько, одна в частности деплоит сайты
Maxim
Dmitriy
И один запуск должен затронуть только один сайт, так?
Dmitriy
Энивей, я бы это решал так:
Есть плейбук общий на всех.
В нём есть include_vars: /path/to/var/files/{{ var }}
И плейбук можно запускать с параметром -e var=example.com
Dmitriy
роль тогда разгрузится и обобщится, от тегов можно будет отказаться
Dmitriy
но это по одному сайту за раз
Maxim
Roman
Привет, никто не сталкивался с проблемой, что при одинаковом шаблоне для одной железки генерится конфиг, а для другой - нет
Roman
внутри yaml переменные все правильные и одинаково определены
Roman
в шаблоне референс на соседнюю железку
Roman
FAILED! => {"changed": false, "failed": true, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute u'
Roman
выдает вот это всё
Denis 災 nobody
юникод влез?
Roman
Да
Aleksandr
Привет, кто-нибудь пользуется модулем vsphere_guest?
Aleksandr
Вопрос про кастомизацию template (хочу ip задавать машинкам при деплое)
Dmitry
Aleksandr
неа
Aleksandr
так не работает, пробую с centos
Dmitry
хз, у меня vmware нет вообще. но легкий гуглеж показывает, что любители сферы массово приседают в гамаках: "create VM, obtain an IP initially, discover it and then assign a new IP"
Aleksandr
Короче, видимо все сводится к тому, что надо чтобы темплей загрузился с каким-то ручным ip и дальше его менять, просто хотелось это сделать через vsphere
Dmitrii
А как в ансибле посмотреть результирующие данные из нескольких инвентори файлов?
Dmitrii
В случае если один динамический, а другой статический. Использую как директорию.
Petr
насколько я помню апи всферы, то адрес меняется после создания машины
Aleksandr
ну вроде как один из вариантов, если vm-tools есть на guest системе, то vsphere подключается к машине и меняет его
Aleksandr
но vm_extra_config в модуле vsphere_guest служит для "A key, value pair of any extra values you want set or changed in the vmx file of the VM. Useful to set advanced options on the VM."
Aleksandr
и как я понимаю, через vmx ip гестовой машине не поменять, соотв, vm_extra_config:
ip_address: "{{ fuck_yeah_static_ip }}" - не имеет смысла, оно просто игнорится
Petr
да
nvkv
Знаете, дорогие котаны. Я в замешательстве
nvkv
сюда писать или в @ru_docker
nvkv
В общем, есть у меня docker-compose.yml, который поднимает приложение
nvkv
приложение состоит из четырёх контейнеров
nvkv
образа для этих контейнеров регулярно меняются в registry
nvkv
запускаю я его через ansible docker_service
nvkv
И не могу понять, как мне заставить его перекачивать образы, если они изменились?
nvkv
@cadmi обругай меня матом, что ли
Aleksandr
pull
(added in 2.2) Use with state present to always pull images prior to starting the application.
Same as running docker-compose pull.
When a new image is pulled, services using the image will be recreated unless recreate is never.
Dmitry
в 2.2 будет pull: yes, я так думаю, неспроста ? :)
nvkv
во
nvkv
Вы клёвые, спасибо
nvkv
пока, видимо, придётся закостылить