Viachaslau
DjinN
подскажите, у меня есть плейбук, в нем некоторые роли запускаются, только если я укажу true для переменной role: disable_se_linux, when: disable_se_linux == 'true' как мне сделать, чтобы по дефолту было false, чтобы при запуске всегда не приходилось переменную задавать?
Alex
| default()
Roman
задать значение в group_vars, либо в самой роли задавать по умолчанию, если не указано иное
DjinN
понял, спасибо
Timur
DjinN
Timur
when: disable_se_linux | bool
Вот так делайте тогда уж
DjinN
Anonymous
Varvara Savchenko будет жить. Поприветствуем!
Bird
Ну где ты, Вар-ва-ра, угу, гм (с)
Andrey
всем привет
никто не сталкивался в версии ansible2.8.3 выскакивает ошибка при запуске playbook
ERROR! unexpected parameter type in action: <type 'bool'>
The error appears to be in '/roles/bootstrap/tasks/main.yml': line 1, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- name: bootstrap_server
^ here
сам yml фаил
- name: bootstrap_server
include: bootstrap.yml
tags: bootstrap
gather_facts: no
в версии 2.7.9 все работает нормально
Отделение Bereke Bank
А в ямле что?
Andrey
А в ямле что?
если вопрос мне то вот yml фаил
```
- name: bootstrap_server
include: bootstrap.yml
tags: bootstrap
gather_facts: no```
Отделение Bereke Bank
извиняюсь. В bootstrap.yml что?)
Andrey
- name: bootstrap python
raw: sudo apt-get install python2.7 -y
- name: bootstrap setuptools and python-apt
raw: sudo apt-get install python-setuptools python-apt -y
- name: install python-pip
apt:
name: python-pip
state: present
update_cache: yes
Andrey
такое поведение только в версии 2.8... с остальными все нормально
kevit
Timur
Andrey
false не помогает
Timur
В каком еще корне?
Andrey
изначально дергается playbook *.yml
- name: base install for all hosts
hosts: all
gather_facts: no
roles:
- bootstrap
в этой роли прописаны определенные установки
Timur
Timur
И как роль bootstrap выглядит?
Andrey
main.yml
- name: bootstrap server
include: bootstrap.yml
tags: bootstrap
gather_facts: no
и bootstrap.yml
- name: bootstrap python
raw: sudo apt-get install python2.7 -y
- name: bootstrap setuptools and python-apt
raw: sudo apt-get install python-setuptools python-apt -y
- name: install python-pip
apt:
name: python-pip
state: present
update_cache: yes
kevit
Alex
kevit
это парсера глюк
Andrey
kevit
ошибка остается той же, line 1?
Timur
Timur
Приведите код в актуальное состояние для современной версии ансибла, ткскзть
kevit
yamllint / ansible-lint что говорит про эту роль? warnings есть при старте если запустить ANSIBLE_DEPRECATION_WARNINGS=True ansible-playbook?
Anonymous
Есть у кого-то истории успеха деплоя через ansible под аккаунтом, который использует MFA с OTP паролем?
Andrey
Andrey
да как раз начал переписывать
Anonymous
@vanch будет жить. Поприветствуем!
Anonymous
@baronPampaDonBau будет жить. Поприветствуем!
Anonymous
Подскажите пожалуйста, а можно как-то порядок хостов сортировать, которые отдаются через magic переменные?
У меня есть jinja шаблон, который заполняется хостами из определенной группы. И бывает такой сценарий, что таск в котором выполняется шаблонизация оказывается changed, что в общем-то логично, т.к. содержимое поменялось.
Но с практической точки зрения там изменился только порядок хостов, который в общем-то не играет роли.
Вот так выглядит строка в шаблоне
"retry_join": [{% for server in groups['consul_servers'] %}"{{ hostvars[server].consul_advertise_address }}"{%- if not loop.last %},{% endif %}{% endfor %}],
DjinN
Может кто объяснить, что делает changed_when? точнее даже changed_when: true
DjinN
DjinN
хм
DjinN
то есть changed_when: true заставит каждый раз делать действие вне зависимости от каких либо иных факторов?
Sergey
Михаил Telsir
Коллеги, есть ли способ убить процесс кроме использования shell: kill -9 PID !?
AlexShmel🐝
Привет, подкажите пожалуйста, есть у меня вот такой кусок
- name: Upload scripts
copy:
src: "files/{{ item.f }}"
dest: "/tmp/{{ item.d }}/"
owner: root
group: root
mode: 0755
with_items:
- { f: 'config_ac.sh', d: 'terraform' }
- { f: 'docker-compose_ac.yaml', d: 'terraform/docker' }
- { f: 'postgresql-ssl.dockerfile', d: 'terraform/docker' }
- { f: 'postgresql-ssl-configure.sh', d: 'terraform/docker' }как мне для одного из этих файлов применить 0711 вместо 0755 ? ( к тому который sh)
Alex
- include_vars: "../../role-name/vars/main.yml"
а есть ли более красивый и правильный способ импорта без использования ../../ ?
DjinN
Anton
Спасбио большое
Что-то типа:
` - name: Update /etc/resolv.conf with DNS2 if it exists
raw: "grep -q {{ DNS2 }} /etc/resolv.conf && echo None || (echo Changed;echo nameserver {{ DNS2 }} >> /etc/resolv.conf)"
when:
- DNS1 is defined
- DNS2 is defined
register: resolv2
changed_when: "resolv2.stdout_lines[0] == 'Changed'"
`
DjinN
Отделение Bereke Bank
Anonymous
@x_All_x будет жить. Поприветствуем!
Damir
Damir
Заодно и читаемость повысите
Anonymous
Alex
так может кто просветить насчет путей в include_vars?
Alex
мне относительно корня папки с ролями
checkdiff
у нас заведено так например:
vars/os/debian.yml
и отдельная таска которая ищет специфичные настройки под дистр:
- name: Include os specific variables
include_vars: "{{ __vars_item }}"
when: __vars_item | length > 0
vars:
__vars_item: "{{ lookup('first_found', __vars_search) }}"
__vars_search:
files: "{{ __vars_candidate }}"
paths: "{{ __vars_path }}"
skip: true
loop: "{{ __vars_files }}"
loop_control:
loop_var: __vars_candidate
defaults/main.yml
__vars_path:
- vars/os
- vars
__vars_files:
- "{{ ansible_os_family | lower }}.yml"
- "{{ ansible_distribution | lower }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version.replace('.', '-') | lower }}.yml"
Аналогично с тасками под разные ОС.
Alex
у меня все таки немного другой случай
Alex
надо иклюдить варсы с другой роли
Alex
и хотелось бы избавиться от ../../ в путях
checkdiff
vars_from
checkdiff
директорива есть
checkdiff
при подключении роли
Sergey
(см. правила в пине)
George
Глупый вопрос: а переменные, определённые в roles/role1/vars/main.yaml видны в role2? (role1 и role2 назначены на один хост)
Sergey
Sergey
Но это - путь на тёмную сторону.