Size: a a a

ansible — русскоговорящее сообщество

2018 August 07

V(

Vlad ( ͡° ͜ʖ ͡°) in ansible — русскоговорящее сообщество
cent cent
А Ты уверен, что service status именно этот локфайл смотрит?
а вот хорош вопрос, ща посмотрю
источник
2018 August 09

NZ

Nikolay Zaitsev in ansible — русскоговорящее сообщество
Привет. Хочу разобраться как лучше реализовать. В роли есть два таска в разных файлах. На версии 2.4.x я их мог выполнять указав теги.

site.yml
- name: App
 hosts: server01
 roles:
     - { role: role_name }

roles/role_name/tasks/main.yml
include_tasks: install.yml
   tags: app_install
include_tasks: update_only.yml
   tags: app_update


И выполнить командой

ansible-playbook ./site.yml -t app_update
источник

NZ

Nikolay Zaitsev in ansible — русскоговорящее сообщество
В версии 2.5 поменяли работу с тегами и так не работает. Скипает.
источник

NZ

Nikolay Zaitsev in ansible — русскоговорящее сообщество
Как мне добиться того же эфекта в 2.5?
источник

cc

cent cent in ansible — русскоговорящее сообщество
Nikolay Zaitsev
Привет. Хочу разобраться как лучше реализовать. В роли есть два таска в разных файлах. На версии 2.4.x я их мог выполнять указав теги.

site.yml
- name: App
 hosts: server01
 roles:
     - { role: role_name }

roles/role_name/tasks/main.yml
include_tasks: install.yml
   tags: app_install
include_tasks: update_only.yml
   tags: app_update


И выполнить командой

ansible-playbook ./site.yml -t app_update
Может я неправильно делаю, но я разруливаю в самой роли нужно ли устанавливать или обновлять.
Проверяю установлено ли что-то, и если да, то потом просто скипаю установку
источник

NZ

Nikolay Zaitsev in ansible — русскоговорящее сообщество
Я бы хотел иметь возможность выполнить один конкретный таск в рамках роли. Выполнить include_task: update_only.yml. Сейчас нужно как-то переделывать логику.
источник

cc

cent cent in ansible — русскоговорящее сообщество
Nikolay Zaitsev
Я бы хотел иметь возможность выполнить один конкретный таск в рамках роли. Выполнить include_task: update_only.yml. Сейчас нужно как-то переделывать логику.
Ну, можно, конечно, костыльнуть с tags. А что именно не работает?
источник

NZ

Nikolay Zaitsev in ansible — русскоговорящее сообщество
Ничего не делает

ansible-playbook ./site.yml -t app_update
SUDO password: 

PLAY [Update ferm on environment] **

TASK [Gathering Facts] **
ok: [server01]

PLAY RECAP **
server01  : ok=1    changed=0    unreachable=0    failed=0  

Теперь нужно либо без тега запускать, тогда он выполнит полностью роль

ansible-playbook ./site.yml

Либо по новому добавлять тег в  самом плейбуке при определении ролей для сервиса. Но тогда он тоже выполнит полностью роль, этот тэг игнорируется в main.yml как я приводил пример выше.

- name: App
 hosts: server01
 roles:
     - { role: role_name, tags: ["app_update"] }
источник

NZ

Nikolay Zaitsev in ansible — русскоговорящее сообщество
Наверное через переменные теперь только.

{ role: role_name, vars: { action: "app_update" }

roles/role_name/tasks/main.yml
include_tasks: install.yml
when: action == 'app_install'
include_tasks: update_only.yml
when:  action == 'app_update'
источник

cc

cent cent in ansible — русскоговорящее сообщество
Nikolay Zaitsev
Ничего не делает

ansible-playbook ./site.yml -t app_update
SUDO password: 

PLAY [Update ferm on environment] **

TASK [Gathering Facts] **
ok: [server01]

PLAY RECAP **
server01  : ok=1    changed=0    unreachable=0    failed=0  

Теперь нужно либо без тега запускать, тогда он выполнит полностью роль

ansible-playbook ./site.yml

Либо по новому добавлять тег в  самом плейбуке при определении ролей для сервиса. Но тогда он тоже выполнит полностью роль, этот тэг игнорируется в main.yml как я приводил пример выше.

- name: App
 hosts: server01
 roles:
     - { role: role_name, tags: ["app_update"] }
1) - { role: role_name, tags: ["app_update"] } - это значит: запускать эту роль, при теге app_update
теги только извне ansible дергаются, вроде.
2) можно и через переменную. Но тогда лучше эту переменную устанавливать если приложуха установлена
(наличие бинарника или еще какой-то уникальный артефакт)
3) можно еще мутить так
roles/rolename/install/main.yml
roles/rolename/update/main.yml
И потом дергать эти две роли в плейбуках, или если нужна одна, то одну
источник

Г

Гена in ansible — русскоговорящее сообщество
@atomlab попробуй import_tasks вместо include_tasks
У нас работает импорт с тегами на 2.5
источник

NZ

Nikolay Zaitsev in ansible — русскоговорящее сообщество
@gevial да, работает. Спасибо!
источник
2018 August 10

d

dmbm in ansible — русскоговорящее сообщество
Привет. Подскажите как запустить скрипт на удалённом сервере. Я выполняю
ansible -m shell -a "sh /root/ServerAgent-2.2.3/startAgent.sh" server
Он висит без ответа. Сам скрипт находится на удалённом сервере.
источник

cc

cent cent in ansible — русскоговорящее сообщество
dmbm
Привет. Подскажите как запустить скрипт на удалённом сервере. Я выполняю
ansible -m shell -a "sh /root/ServerAgent-2.2.3/startAgent.sh" server
Он висит без ответа. Сам скрипт находится на удалённом сервере.
Попробуй -vvv добавить
источник

d

dmbm in ansible — русскоговорящее сообщество
cent cent
Попробуй -vvv добавить
ну похоже, что скрипт запустился и выполняется, а ансибл его ждёт. Мне бы хотелось, чтобы он просто запустился. Хотя если я скрипт через консоль запускаю, то он ничего не возвращает. В случае ошибок и без оных.
источник

ЯП

Ян Пицко in ansible — русскоговорящее сообщество
он должен что вернуть, или ссобщить об ошибке или о выполнении, запусти еще раз с параметром -vvv в конце, и будет видно, где он висит
источник

d

dmbm in ansible — русскоговорящее сообщество
в общем решил проблемы так. Открыл содержимое скрипта. Оказалось, что он запускает другой скрипт:
nohup /root/ServerAgent-2.2.3/startAgent.sh > /root/ServerAgent-2.2.3/agent.log 2>&1 &

Ну я эту команду и запустил с помощью ансибла.
источник

ЯП

Ян Пицко in ansible — русскоговорящее сообщество
дык ансибл должен был отработать и сообщит
источник

d

dmbm in ansible — русскоговорящее сообщество
ну вот что-то промолчал)
источник

d

dmbm in ansible — русскоговорящее сообщество
источник