2016-04-15 14 views
5

Aby wykonać niektóre operacje lokalnie (nie na zdalnym komputerze), muszę umieścić zawartość ansible zmiennej wewnątrz pliku tymczasowego.Jak zapisać zmienną ansibli w pliku tymczasowym, który jest automatycznie usuwany po zakończeniu wykonywania instrukcji?

Proszę zauważyć, że szukam rozwiązania, które zajmie się wygenerowaniem pliku tymczasowego w miejscu, w którym można go zapisać (brak nazw zakodowanych na stałe), a także dba o usunięcie pliku, ponieważ nie chcemy zostawić rzeczy za sobą.

Odpowiedz

1

Zamiast zrobić z plikiem, dlaczego nie tylko use the environment? Ten blady można łatwo pracować ze zmienną i będzie on żył przez sesję ansibli i można go łatwo odzyskać w dowolnym kroku lub poza nim.

1

Chociaż korzystanie ze środowiska powłoki/aplikacji jest prawdopodobnie, jeśli konkretnie chcesz użyć pliku do przechowywania danych zmiennych można zrobić coś takiego

- hosts: server1 
    tasks: 
    - shell: cat /etc/file.txt 
    register: some_data 
    - local_action: copy dest=/tmp/foo.txt content="{{some_data.stdout}}" 

- hosts: localhost 
    tasks: 
    - set_fact: some_data="{{ lookup('file', '/tmp/foo.txt') }}" 
    - debug: var=some_data 

Co do obowiązku nadać plikowi unikalną nazwę i posprzątaj po zakończeniu gry. Zostawię tę implementację

+0

Często używam plików tymczasowych, ponieważ muszę wywoływać funkcje, które pobierają pliki jako argumenty. Muszę zrzucić dane ze zmiennej lub szablonu do pliku tymczasowego, użyć go, a następnie posprzątać. Odpowiednio można to zrobić za pomocą stenogramu. –

+0

Skróty mogą być podobne do "z" Pythona, który tworzy zasób, który jest automatycznie usuwany po wygaśnięciu tego zakresu. Inną metodą, która ma zastosowanie tylko wtedy, gdy polecenie jest poleceniem powłoki, jest użycie plików basha: 'cat <(echo foo)', który tworzy plik tymczasowy, zapisuje do niego foo, następnie wywoływana jest funkcja wiersza poleceń, tutaj cat, ścieżka pliku. Ale to tylko dla powłoki i to trochę przesuwa problem do języka, który traktuje pliki tymczasowe jako ważne i wartościowe. –

Powiązane problemy