Timur
И код скриншотами постить - зашквар
Павел П.
Всем привет. Хочу обновиться на AWX 7.0.0 c AWX 2.1.2. , стоит в докере. Кто проходил, какие подводные камни, что ломалось, к чему готовиться?
Поставился только на чистую систему. На той же самой где работал второй - и 7 и 6 версия AWX в докере - плейбуки установки вылетают с разными ошибками. Какая-то это боль.
Vladimir
И код скриншотами постить - зашквар
Согласен, но закрытый сегмент, а с телефона это набирать - ад. Да, скобки в условии убрал и поведение нормальное стало, спасибо
Алексей
Вопрос. Можно ли модулю k8s "скармливать" сразу несколько файлов? Делаю вот так - ругается на питонячий код анзибла: - name: "Up ignite pvc" k8s: context: "{{ kx_context }}" state: present definition: "{{ lookup('fileglob', 'roles/ignite-instance/ignite-pvc-*.yaml') }}"
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
через луп заработало)
Алексей
пробуй пользовать loop
src: "{{ item }}" loop: "{{ lookup('fileglob', 'roles/ignite-instance/ignite-pvc-*.yaml', wantlist=True ) }}"
Алексей
Sergey
спасибо
всегда пожалуйста
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
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#migrating-from-with-x-to-loop
Alena
В ansible_mounts посмотри, там есть size_available
Спасибо, все получилось )
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
возможно "{{ servers }}" после блока endfor
Да, спасибо, такую фигню тупо не увидел
Anonymous
пожалуйста
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
inqfen
Ансибл наконец то учится в управление пакетами
George
полный треш
George
они хотят пакетированного ада - проблема-то не в пакетах как таковых
Anatoliy
хм. по мне - коллекции гуд. есть возможность ссылаться в одних ролях на другие и это гарантированно будет работать
George
это очень плохая идея
George
как только у тебя роль перестает быть терминальным узлом в зависимостях - это путь к тому, что в какой-то момент случится diamond dependency
George
А зависит от Б, А зависит от В. Б зависит от Д версии 1.1, В зависит от Д версии 1.2
George
Д - несовместим сам с собой
George
без нормально депенденси солвера я бы в это не пошел
Anatoliy
коллекция не должна содержать разные версии ролей. она (коллекция) сама по себе атомарная единица, которая просто позволяет структурировать одну большую задачу по нескольким ролям. Пример: prometheus server, alertmanager, exporter-ы. все про всех должны знать. чтобы не писать простыни конфигов можно сложить все в одну коллекцию и работать с переменными в host_vars
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 ) }
Alexander
а точнее сообщение об ошибке?
Attempting to decrypt but no vault secrets found
Aleksey
Это не про то что нечего расшифровывать. А про то что нечем. —vault-password-file видимо не видит
Alexander
А по структуре, ошибок нет?
Alex
Подскажите, а docker_service/docker_compose не умеет подтягивать переменные из .env файла?
Alex
и есть ли какой то workaround? Кроме как использовать shell
Mentat
Подскажите, а docker_service/docker_compose не умеет подтягивать переменные из .env файла?
А прописать ему в vars секцию таска env файл не работает?
George
задачу какую решаешь?
George
как будто тебе компоуз вообще не нужен, т.к. есть переменные ансибла
Alex
есть готовое приложение, которое использует .env файл
Alex
хотелось бы обойтись малой кровью
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