manefesto
столкнулся тут с массивами в переменных
vars:
mysql:
login_user: root
login_password: test
databases:
- db1
- db2
собственно говоря в плейбуке делаю так
- name: backup database to db_{{timestamp}}
mysql_db:
login_user: "{{mysql.login_user}}"
login_password: "{{mysql.login_password}}"
state: dump
name: "{{item}}"
target: "{{backup_folder}}/{{item}}.sql"
loop: " {{mysql.databases}}"
а он меня шлет
manefesto
поменял loop на with_items и полетело
manefesto
спасибо всем
Cloned
Howdy!
I create users using Ansible in Ubuntu 1604, when i log in with the newly created user, the folders called ".config" and ".dbus" are owned by root for some reason
Cloned
- name: "Create new developer user account"
become: True
become_user: root
user:
name={{ new_username }}
skeleton="/etc/skel"
shell=/bin/bash
createhome=yes
groups=adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare
append=yes
Cloned
this is how i create the users, can't for the life of me figure out why it makes only those two folders as root:root.
bebebe
Cloned
ansible 2.4.3.0
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/majo/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.4 (default, Jan 5 2018, 02:35:40) [GCC 7.2.1 20171224]
manefesto
@Clonedpirate bro, this is russian spoken channel
Cloned
manefesto
йобана рот
bebebe
Anonymous
Anonymous
https://www.postgresql.org/docs/9.3/static/libpq-pgpass.html
manefesto
вроде как можно переджать в переменных окружения
Tadeusz
Зачем 9.3, когда есть 10? Сорян за оффтоп
Anonymous
Anonymous
Anonymous
Лол
manefesto
Небезопасно
чо это ?
генеришь файл, запускаешь свой таск
грохаешь файл
Alexander
Лол
и такие есть, а ты думал!
Alexander
Alexander
пгпассворд тоже не прокатил, - показывал же выше. может, я синтаксически что-то не так делал
Alexander
сек
bebebe
https://stackoverflow.com/questions/37930895/specify-postgresql-passwords-in-ansible-playbook ?
Alexander
vars:
postgresql_databases:
- name: db
postgresql_users:
- name: user_db
password: cdba1
microservice_name: web
microservice_desc: web Portal
microservice_user: "{{ web.user }}"
microservice_exec: dotnet Paragon.Microservices.EvidenceStore.WebApp.dll
microservice_workdir: "{{ web.home_path }}"
microservice_confdir: "{{ web.config_path }}"
- name: Copy template sql script
template: src="../../templates/dsgvo/init_db.sql.j2" dest="/usr/pgsql-9.6/bin/init_db.sql"
- name: Execute sql script
shell: "psql -d db -u user -f /usr/pgsql-9.6/bin/init_db.sql"
environment:
PGPASSWORD: "{{ postgresql_users[0].password }}"
manefesto
ооо.переменные, точно
Alexander
export!
Anonymous
{{ postgresql_users[0].password }} как это в инвентаре описано?
Anonymous
А вон виде сверху)
Alexander
Anonymous
Смущает одно
Anonymous
Почему перед пассаорд нету черты
Tadeusz
в постгре есть pg_hba/pg_ident…
Alexander
Alexander
manefesto
postgresql_users:
- name: user_cbdocs
password: cdba1
manefesto
вот тут нет
manefesto
это же типа массив
manefesto
эээ
Tadeusz
# TYPE DATABASE USER ADDRESS METHOD
local all zabbix ident
local all postgres ident map=supervisor
local all all password
host all all 127.0.0.1/32 password
host all all 0.0.0.0/0 password
manefesto
а чо не
postgresql_users:
name: user_cbdocs
password: cdba1
и
environment:
PGPASSWORD: "{{ postgresql_users.password }}"
Alexander
эээ
дефиса?
в любом случае, он выдаёт ошибку, в которой понятно, что он понимает, что есть такое postgresql_users[0].password
Alexander
Anonymous
Anonymous
Если так то UNBELIEVEABLE
Anonymous
А тут кстати пишет, что опцию -u не схавал, попробуй так же, только вместо неё PGUSER вариаблю передать
Anonymous
Если на -d ругаца будет, то просто psql database_name
Alexander
Me
парни, как-то можноу указать минус одну группу из all ?
groups.all
Alexander
Me
Me
В роли использую такую конструкцию
Me
в темплейте не рабит
Me
слшиком много (
bebebe
слшиком много (
тогда проверяйте таким способом
{% for host in groups.all:!opentsdb %}
{% if host in not groups['opentsdb'] %}
....
Me
bebebe
идея!
Спасибо
вы только в следующий по другому описывайте свой вопрос, что бы я не гадал, что вам именно в темплейте нужно использовать
Me
bebebe
и да, при таких телодвижениях настоятельно советую использовать 2.5.0.0, там была проведена БОЛЬШАЯ оптимизация по работе с переменными в темлпейте.
на 2.4.x у меня генерация темплейта пробегающего по всем группам занимала от 3 минут, в 2.5, около 15 секунд
bebebe
https://github.com/ansible/ansible/issues/33259
Me
Alexander
вдруг кому понадобится. сработало вот в таком виде:
- name: Execute sql script
shell: 'PGPASSWORD={{ postgresql_users[0].password }} psql -d db -U user_db -h localhost -f /usr/pgsql-9.6/bin/db.sql'
Matvey
Всем привет, кто нить реализовывал параллельный деплой на разные хосты, разные роли. к примеру, 5 хостов - 5 ролей. Сейчас все выполняется последовательно. А хочется все и сразу.
manefesto
http://docs.ansible.com/ansible/latest/user_guide/playbooks_async.html
manefesto
https://medium.com/@ibrahimgunduz34/parallel-playbook-execution-in-ansible-30799ccda4e0
Nazar
Matvey
да, как то нативно не получается, можно одну роль на несколько серверов ставить, или несколько ролей на один сервер
Matvey
получается несколько плейбуков делать надо с одной ролью
Sergey
Sergey
всё уже придумано до нас