Timur
Timur
И код скриншотами постить - зашквар
Алексей
Вопрос. Можно ли модулю k8s "скармливать" сразу несколько файлов? Делаю вот так - ругается на питонячий код анзибла:
- name: "Up ignite pvc"
k8s:
context: "{{ kx_context }}"
state: present
definition: "{{ lookup('fileglob', 'roles/ignite-instance/ignite-pvc-*.yaml') }}"
Sergey
Sergey
а то в параметрах модуля либо src, либо resource_definition
Sergey
а, затупил я, извини - это алиас
Sergey
нет, нельзя такое творить
Алексей
кинь ссылку на описание параметра «definition»
Provide a valid YAML definition (either as a string, list, or dict) for an object when creating or updating. NOTE: kind, api_version, name, and namespace will be overwritten by corresponding values found in the provided resource_definition.
Sergey
через цикл, наверное
Sergey
пробуй пользовать loop
Алексей
блин(
Алексей
пробуй пользовать loop
src: "{{ item }}"
loop: "{{ lookup('fileglob', 'roles/ignite-instance/ignite-pvc-*.yaml', wantlist=True ) }}"
Алексей
Captain Bamboo
Всем привет. Можно ли провернуть примерно такое
revision: "{{ build_path | basename | magic .split('_')[1] }}"
Сейчас это сделано подобным образом идея в том что-бы избавиться от переходного build_basename
build_path: 'blabla/blabla/bla_0.0.0_blabla.zip'
build_basename: "{{ build_path | basename }}"
revision: "{{ build_basename.split('_')[1] }}"
manefesto
в 2.8 такая конструкция будет работать ?
- name: restart services
systemd:
name:
- uwsgi
- celery
- flower
state: restarted
manefesto
или надо по старинке with_items ?
manefesto
https://docs.ansible.com/ansible/2.8/modules/systemd_module.html
manefesto
не нашел
manefesto
проверю
manefesto
вроде после 2.5 были измнения по поводу with_items
Aleksey
Aleksey
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#migrating-from-with-x-to-loop
Alena
inqfen
Господа, я уже похоже чот не вижу
- name: create host list for mongo
set_fact:
mongo_servers_external: >-
{% set servers = [] %}
{% for host in groups['mongodb'] %}
{{ servers.append(hostvars[host]['external_address']) }}
{% endfor %}
delegate_to: "localhost"
inqfen
"msg": "template error while templating string: Expected an expression, got 'end of print statement'. String: {{ }}"
inqfen
что не так
Anonymous
возможно "{{ servers }}" после блока endfor
Anonymous
нет?
Anonymous
или не нужны кавычки... просто {{ servers }}
inqfen
Anonymous
пожалуйста
Timur
inqfen
Надо получить лист из переменных хостов
inqfen
2 листа на самом деле, но это уже мелочи
simplemice.eth
В Ansible 2.8 как Technology Preview были добавлены Collections — новый способ декомпозиции и поставки Ansible кода. В 2.9 он возможно станет GA, поэтому статья от Steampunk http://amp.gs/NbJV
и от RedHat http://amp.gs/NbJd
http://amp.gs/NbJU
#ansible #collections
George
inqfen
Ансибл наконец то учится в управление пакетами
George
полный треш
George
они хотят пакетированного ада - проблема-то не в пакетах как таковых
Anatoliy
хм. по мне - коллекции гуд. есть возможность ссылаться в одних ролях на другие и это гарантированно будет работать
George
это очень плохая идея
George
как только у тебя роль перестает быть терминальным узлом в зависимостях - это путь к тому, что в какой-то момент случится diamond dependency
George
А зависит от Б, А зависит от В. Б зависит от Д версии 1.1, В зависит от Д версии 1.2
George
Д - несовместим сам с собой
George
без нормально депенденси солвера я бы в это не пошел
Anatoliy
коллекция не должна содержать разные версии ролей. она (коллекция) сама по себе атомарная единица, которая просто позволяет структурировать одну большую задачу по нескольким ролям.
Пример: prometheus server, alertmanager, exporter-ы. все про всех должны знать. чтобы не писать простыни конфигов можно сложить все в одну коллекцию и работать с переменными в host_vars
George
Anatoliy
коллекции ни в коем случае не аналог npm ноды, если ты об этом
Alexander
Подскажите, по правильному размещению переменных, secret файлов и т.д.
ansible
Сейчас так:
└── jenkins
└── ansible
├── ansible.cfg
├── group_vars
│ └── all
│ ├── public_vars.yml
│ └── secret_vars.yml
└── playbook.yml
Alexander
В playbook указано:
vars_files:
- group_vars/all/public_vars.yml
- group_vars/all/secret_vars.yml
Alexander
Но в логе дженкинса говорится, что он не может найти что расшифровывать
Alex
а точнее сообщение об ошибке?
Alexander
И кусок из дженкинса
withCredentials([file(credentialsId: "ansible-vault-file", variable: 'AnsibleVaultFile')]) {
ansiblePlaybook(
playbook: "jenkins/ansible/playbook.yml",
extras: "-vv -e --vault-password-file ${AnsibleVaultFile}",
colorized: true,
disableHostKeyChecking: true
)
}
Aleksey
Это не про то что нечего расшифровывать. А про то что нечем. —vault-password-file видимо не видит
Alexander
А по структуре, ошибок нет?
Alex
Подскажите, а docker_service/docker_compose не умеет подтягивать переменные из .env файла?
Alex
и есть ли какой то workaround? Кроме как использовать shell
Mentat
George
George
задачу какую решаешь?
George
как будто тебе компоуз вообще не нужен, т.к. есть переменные ансибла
Alex
есть готовое приложение, которое использует .env файл
Alex
хотелось бы обойтись малой кровью
Alexander
George
George
оно само оттуда считывает настройки, что ли?
George
чего-то сомнительно
Alexander
Скажите, правильно ли я передаю env
---
- name: Create OpenStack VM
hosts: localhost
vars_files:
- group_vars/all/public_vars.yml
- group_vars/all/secret_vars.yml
roles:
- role: openstack
vars:
vm_name: test
environment:
ANSIBLE_HOST_KEY_CHECKING: False
ANSIBLE_ROLES_PATH: /var/jenkins_home/roles
Alexander
Потому что ансибл ругается, что не может найти роли
Sergey
Положи roles рядом с плейбуком.
Alexander
Не хотелось бы
Aleksey
смотри что у тебя тут происходит, ты вызываешь роль и к ней даешь путь с каталогом с ролями
Sergey
Не хотелось бы
Страдай. Либо используй абсолютные пути (=страдай). Либо пиши нормально пути в ansible.cfg.
Aleksey
т.е. тебе надо ANSIBLE_ROLES_PATH при вызове ансибла самого передавать, либо в ansible.cfg
Sergey