Lex
https://github.com/jhaals/ansible-vault
Ievgen
на мой вкус - почём зря.
к примеру, у меня есть некоторый набор тегов фиксированный, который есть во всех ролях. таким образом я знаю, что любая роль, будучи запущенной с тегом restart, сделает рестарт сервиса, с configure - приведёт его конфиги к заданному виду, с install - установит сервис в систему, с prepare - штуки типа "притащить на хост толстый внешний архив"
понятно, что почти всегда install,configure.
плюсую, пришел примерно к такой же схеме - набор +- стандартных тегов кочующих из роли в роль
Mikhail
Всем привет. Может кто сталкивался. Ансибл может с Cisco вытащить ip и записать эти переменные, чтобы потом их использовать в новой конфигурпции?
Tadeusz
циско позволяет ансиблу по ssh зайти и имеет на борту питон?
Mikhail
Ssh есть, питона на ней нет
Tadeusz
забудьте тогда :)
Mikhail
Я понял;)
Yuriy
так есть же поддержка циско какая-то
Yuriy
http://docs.ansible.com/ansible/latest/modules/list_of_network_modules.html#ios
Yuriy
ансибл, как я понял, активно начали по сетевым железкам развиваться
Sergey
Mikhail
Artem
Ну там же не для всех цисок вроде. Только для оч дорогих
Artem
Ошибаюсь?
Tadeusz
попробуйте :)
Artem
У меня нет цисок)
Tadeusz
ну эт было адресовано к вопрошающему)
Anton
Anton
ios_command
Ostap
всем привет. как правильно запускать команду на локальном хосте. инетресует команда npm install. но запуск на ПК где запущен playbook
Ostap
есть: local_action, delegeta_to. но что использовать ?
Vadim
local_action
Ostap
- name: Install frontend dependencies
local_action:
module: npm
path: "{{ playbook_dir }}../"
tags:
- npm
Ostap
получаю
TASK [common : Install frontend dependencies] ******************************
fatal: [192.168.33.110 -> localhost]: FAILED! => {"changed": false, "msg": "Failed to find required executable npm in paths: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"}
to retry, use: --limit @/vagrant/provision/index.retry
Ostap
npm локально інфа 146% что установоен
Ostap
я еще спростил
- name: Test local_action
local_action:
module: debug
msg: "The dir: {{ playbook_dir }}"
--
TASK [common : Test local_action] ******************************************
task path: /vagrant/provision/roles/common/tasks/main.yml:177
ok: [192.168.33.110 -> localhost] => {
"msg": "The dir: /vagrant/provision"
}
Ostap
почему так ?
Ostap
подозреваю, что проблема в ansible_local, но как с ней жить ?
Vadim
а что говорит which npm?
Vadim
подозреваю что оно алиасом в баше прописано
manefesto
для цисок и прочих железок есть expect
manefesto
https://docs.ansible.com/ansible/2.5/modules/expect_module.html
Ievgen
Ievgen
Ostap
Ostap
проблема в том, что для него local это vagrant
Ievgen
так это не проблема
Ievgen
вернее даже не так
Ievgen
внутри вагранта очевидно local_action не имеет смысла так как ты там и так уже локально
Ievgen
Внутри бокса есть npm?
Ievgen
ну и в целом какая задача?
manefesto
мне кажется надо поставить npm
manefesto
точнее nodejs
Ievgen
ну как бы если задача накатить внутри бокса модули через npm то логично что он там должен быть
manefesto
но не факт что он там есть
Ievgen
ну и то что вагрант сетапит себя изнутри
manefesto
пошел ставит вагрант, колупать его
Ievgen
хорошая штука, как почти все от хашикорп
manefesto
я его щупал, кстати в книге по ансиблу примеры идут как раз с вагрантом
Ievgen
пакер еще, и тоже работает с ansible
Ievgen
собираешь пакером вагрант бокс накатывая стартовые роли, затем подымаешь сам бокс накатывая сервисы )
manefesto
что за пакер ?
Ievgen
и наступает полный заебись
Ievgen
https://www.packer.io/intro/use-cases.html
Ievgen
делает образы вм под все что шевелится
Ievgen
use case - тебе нужен вагрант бокс для дев например, берешь пакер, iso image, ansible, сам вагрант и вперед
Err
Ребята помогите. Хочу создать юзера и установить через этого юзера rbenv. Проблема в том что become: true и become_user: user1, во всех вариациях, не делают дают видимость $PATH от user1, а продолжает давать либо подключённого юзера либо рут, кто нибуть сталкивался с таким?
manefesto
не понял
Ievgen
тут есть что то похожее
Ievgen
https://serverfault.com/questions/734560/ansible-become-user-not-picking-up-path-correctly
Salem
Salem
оно не дает шелл в точности как у юзера
manefesto
если целяешься под рутом, то можешь в блоке сделать become_method: su
и в начала блока что-то вроде shell: source ~/.bashrc
Ievgen
manefesto
если всё засунешь в block то нет
Ievgen
я так не извращаюсь, но good to know
manefesto
почему же ?
мне надо выполнить определенные действия под непривилигированным юзером, пихаю в block и вуаля, но, мы допустим в блок можем запихать определенные дествия и запускать только при условии что when:....
manefesto
я вот такое сделал
become: true
become_method: sudo
become_user: root
when: ('"nothing added to commit but untracked files present" not in git_api_commit.stdout' and '"nothing added to commit but untracked files present" not in git_api_commit.stdout')
Ievgen
я не про блок, а про переменные, блок офигенен
Ievgen
@mamyrkhanov а как ты вызываешь rbenv можно таск глянуть?
Ievgen
просто есть очевидные решения типа сделать source что то прямо в таске вызова rbenv или запустить через например bash -c
Aleksei
А есть в ансибле что-то встроенное для того чтобы обеспечить dual control на запуск тасков?(типа я хочу запустить, но кто-то еще должен подтвердить этот запуск)
Err
Думал сделать как обычно это делается, без указания точных путей
Nklya
Ievgen
Ievgen
не прокатило?
Err
Err
fatal: [35.196.209.175]: FAILED! => {"changed": true, "cmd": ["rbenv", "install", "2.0.0"], "delta": "0:00:00.017395", "end": "2018-04-13 10:01:30.504790", "msg": "non-zero return code", "rc": 1, "start": "2018-04-13 10:01:30.487395", "stderr": "rbenv: /home/user1/.rbenv/versions/2.0.0 already exists", "stderr_lines": ["rbenv: /home/user1/.rbenv/versions/2.0.0 already exists"], "stdout": "", "stdout_lines": []}