2016-06-03 4 views
1

Просто интересно, есть ли у меня следующий кукольный файл, и я бы хотел разделить их на отдельные файлы. Должен ли я создавать модуль? Не могу я просто включить их?Как разбить кукольные файлы

node default { 
    include mysql 
} 


class mysql { 

    # Make sure MySQL is ... 
    notify {"Mysql":} 

    # installed 
    package { 'mysql': 
    require => Exec['apt-update'], # require 'apt-update' before installing 
    ensure => installed, 
    } 

    # and running 
    service { 'mysql': 
    ensure => running, 
    enable => true, 
    } 
} 

... 

Я просто хочу вывести класс mysql для отдельного файла. Как это сделать? Кстати, я использую бесхозные Кукольный

Редактировать

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

Могу ли я сделать разделение БЕЗ бродяг? Если я должен так быть.

Благодаря

+0

Вы отметили [бродяга], но неясно, как ваш вопрос связан с Vagrant. –

+0

В простейшей форме создание модуля просто означает размещение файла, содержащего ваш класс 'mysql', в соответствующем каталоге. Это то, что вы должны сделать, если хотите разделить манифест на два. –

+0

Приношу свои извинения, у меня есть мой вопрос яснее. Это плохо. К сожалению, даже если я поместил файлы в соответствующий каталог, мой не был обнаружен, вероятно, потому, что путь включения не был установлен должным образом. –

ответ

5

Вы можете переместить свой mysql класс в свой собственный модуль

вы в конечном итоге с чем-то вроде этого

. 
├── Vagrantfile 
├── puppet 
| ├── manifests 
|   ├──── base.pp 
| └── modules 
|   └── mysql 
|    └── manifests 
|      └──── init.pp 

Vagrantfile бы как

Vagrant.configure("2") do |config| 
    <make all your configuration here> 
    config.vm.provision :puppet do |puppet| 
     puppet.manifests_path = "puppet/manifests" 
     puppet.manifest_file = "base.pp" 
     puppet.module_path = "puppet/modules" 
    end 
    end 

end 

файл base.pp будет содержать только

node default { 
    include mysql 
} 

и файл MySQL/init.pp будет содержать сам MySQL класс

class mysql { 

    # Make sure MySQL is ... 
    notify {"Mysql":} 

    # installed 
    package { 'mysql': 
    require => Exec['apt-update'], # require 'apt-update' before installing 
    ensure => installed, 
    } 

    # and running 
    service { 'mysql': 
    ensure => running, 
    enable => true, 
    } 
} 

Это может быть хорошей идеей для модуля упражнений в марионетку, но честно вы, скорее всего, чтобы использовать существующий модуль, а не изобретать велосипед: https://forge.puppet.com/puppetlabs/mysql/2.2.3 будет хорошим модулем для использования

+0

@JohnBollinger действительно, но он был помечен бродягой, поэтому я предположил, что OP использует марионетку из бродяги - правда то же самое можно сделать без бродяг, а раскол будет то же –

+1

Из этого ответа теперь я знаю, о чем попросил ОП. Выражение, о котором идет речь, слишком сложно понять. – BMW

+0

Спасибо @ FrédéricHenri Я оценил ваш ответ (+1), и я обновил свой вопрос, чтобы устранить некоторую путаницу. Как я могу сделать, как вы сказали без бродяг? Как настроить путь без бродяг –

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