2013-04-04 12 views
9

Opracowuję moduł Ansible, który generuje adres URL, pobiera (np. Get_url) plik z tego adresu z mojego wewnętrznego artefaktu, a następnie rozpakowuje go. Zastanawiam się, czy istnieje sposób na dołączenie lub rozszerzenie modułu modułowego Ans_url Ansible w moim module. Nie mogę tego zrobić w wielu krokach, ponieważ używany adres URL jest generowany z skrótu git i wymaga wieloetapowego wyszukiwania.Czy rozbudowany moduł Ansible może zawierać moduł Ansible Core?

Jeśli nie ma sposobu, prawdopodobnie po prostu skopiuję cały moduł get_url i użyję go w moim module, ale chciałbym tego uniknąć.

chciałbym zrobić coś takiego:

module_json_response = module.get_module('get_url').issue_command('url=http://myartifactory.com/my_artifact.tar.gz dest=/path/to/local/my_artifact.tar.gz');

Moje rozumienie ansibl jest to, że ładuje moduł w użyciu i wykonuje go, w tym inny moduł nie jest obsługiwany lub nie jest udokumentowany .

Z góry dziękuję za pomoc.

Odpowiedz

9

Cytując Michaela DeHaan Post here:

Generalnie ansibl umożliwia dzielenie kodu poprzez "lib/ansibl/module_common.py", aby pisząc funkcjonalność łatwiejsze.

To nie oznacza jednak, pozwalają na jeden moduł zadzwonić innego, które nie, do tej pory naprawdę był potrzebny - że nie jest całkowicie prawda, kiedyś coś podobnego do pliku i kopiowania aż dostał inteligentne i przeniósł kod atrybutów plików do wspólnego :)

wydaje się, ponieważ dostęp url jest wystarczająco często możemy dokonać wspólną funkcję w module wspólnego pliki do pobrania URL - IF możemy modyfikować kod GET_URL również go używać, abyśmy się nie powtarzali.

Później następuje z:

Możesz przejść prace sposób szablon napisanie wtyczki działanie , ale jest to bardziej złożone niż napisanie prostego modułu klienckiego.

+1 do przeniesienia kodu get_url do zwykłego, który pojawił się kilka razy.

Powiązane problemy