2016-04-14 2 views
0

Можно ли импортировать классы/объекты/функции python в файлы куклы (файлы .rb с пользовательскими поставщиками или любыми другими)? Есть ли какой-либо путь помимо «exec» для запуска кода python с помощью кукольного?Можно ли импортировать код python в кукольные файлы?

+0

Вы, вероятно, лучше переключиться на анзибль, как это питон на основе См http://docs.ansible.com/ansible/developing_api.html Или обучение рубина и написание надстройки на коде в рубине для марионетки вместо – Vorsprung

ответ

0

Ruby имеет метод system(), с помощью которого вы можете запускать внешнюю программу Python. Ruby также имеет fork() и exec(), с помощью которых вы можете катиться самостоятельно, с большим контролем. У кукол также есть обертки вокруг последнего, которые могут использовать ваш код плагина Ruby.

Но вы, кажется, просите что-то другое. Стандартная реализация C Ruby предоставляет родные (C) расширения, а Python имеет C API. Поэтому возможно, в принципе, для внедрения интерпретатора Python в Ruby через собственное расширение, с вызовами в него по пути Ruby -> C -> Python. Вы можете использовать такое расширение в любом плагине Ruby, который поддерживает Puppet, включая пользовательские функции, пользовательские факты, поставщики ресурсов и даже шаблоны ERB.

На практике я не могу рекомендовать подход внедрения. Хотя я уверен, что это может быть сделано для работы, это похоже на большое количество ненужных осложнений с большим количеством накладных расходов.

Смежные вопросы