#jenkins #ansible
#дженкинс #ansible
Вопрос:
Поскольку JOB_NAME доступен как переменная в Jenkins job.
Я хочу, чтобы определенная переменная выбиралась, когда в переменной JOB_NAME есть определенная строка
таким образом, на основе разных заданий jenkins я могу регистрировать разные переменные.
Я пытаюсь что-то сделать, как показано ниже, в group_vars, не уверен, сработает ли это.
command: echo "{{ lookup('env','JOB_NAME') }}"
register: jenkins_job_name
when: installation in jenkins_job_name
- topology: topology-02
Ответ №1:
Вы можете определить список доступных топологий где-нибудь в ваших групповых переменных, а затем выбрать одну со значением, set_fact
зависящим от JOB_NAME
.
Например:
- hosts: localhost
gather_facts: no
vars:
topologies:
prod: foo
dev: bar
tasks:
- set_fact: topology="{{ topologies[lookup('env','JOB_NAME')] | default('unknown') }}"
- debug: var=topology
Это установит:
topology=foo
еслиJOB_NAME=prod
topology=bar
еслиJOB_NAME=dev
topology=unknown
в противном случае
У вас может быть объект конфигурации сложной топологии вместо простых foo
/ bar
строк.