2015-10-27 2 views
0

В качестве части большинства загрузочных плееров Ansible мне нужно установить Node и Mongo из встроенных архивов. Судо-привилегии и доступ в Интернет недоступны. Все действия Ansible происходят против localhost.Перезагрузка PATH для всего playbook

Одна из проблем этой установки заключается в том, что после разворачивания узла/mongo они должны быть добавлены в PATH или последующие роли/задачи не смогут опираться на них. К сожалению, я, похоже, не могу найти способ изменить PATH в режиме запуска Ansible.

Я пытался использовать shell и командные задачи для экспорта PATH и источника .bashrc, ни один из них не помогает. Есть ли способ использовать установку моего узла в одном и том же учебнике? Задача yum, похоже, делает трюк, но теперь она недоступна.

ответ

2

Вы пытались использовать 'environment'?

Вы можете получить локальный путь в переменную

environment: 
    PATH: "{{ lookup('env', 'PATH') }}" 

или вы можете установить PATH

environment: 
    PATH: "{{ node_path }}:{{mongo_path}}:{{ lookup('env', 'PATH') }}" 

выше подразумевает, что вы можете зарегистрировать путь к Монго & Узел в вары, и сделать они доступны для более поздних игр.

информация об использовании среды & PATH локально, так и удаленно здесь: https://serverfault.com/questions/577188/how-can-i-prepend-to-path-while-running-ansibles-pip-module

- hosts: localhost 
    gather_facts: False 
    vars: 
    path1: "{{lookup('env', 'PATH')}}" 
    tasks: 
    - shell: echo $PATH 
    environment: 
     PATH: 'mypath2' 
    register: path2 
    - shell: echo $PATH 
    environment: 
     PATH: 'mypath3' 
    register: path3 
    - shell: echo $PATH 
    environment: 
     PATH: "{{ path1 }}" 
    register: path4 


    - debug: msg={{path1}} 
    - debug: msg={{path2}} 
    - debug: msg={{path3}} 
    - debug: msg={{path4}} 
    - debug: msg={{lookup('env', 'PATH')}} 
Смежные вопросы