如何拆分人偶文件
How to split puppet files
只是想知道我是否有以下人偶文件,我想将它们拆分成单独的文件。我必须创建模块吗?我不能只包括它们吗?
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 class 放在单独的文件中。如何做这个简单的事情?顺便说一句,我正在使用无主傀儡
编辑
非常抱歉,事实是我只使用了 puppet 而没有使用 vagrant。但是由于我不是 devops 专家,所以当我的问题被修改为包含 vagrant 时,我就接受了。抱歉造成混淆,让我修改一下我的问题
我可以在没有 vagrant 的情况下进行分离吗?如果我必须这样做的话。
谢谢
您可以将 mysql
class 移动到它自己的模块中
你最终会得到这样的结果
.
├── 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 本身
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,
}
}
在 puppet 中进行模块练习可能是个好主意,但老实说,您更有可能使用现有模块而不是重新发明轮子:https://forge.puppet.com/puppetlabs/mysql/2.2.3 将是一个很好用的模块
只是想知道我是否有以下人偶文件,我想将它们拆分成单独的文件。我必须创建模块吗?我不能只包括它们吗?
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 class 放在单独的文件中。如何做这个简单的事情?顺便说一句,我正在使用无主傀儡
编辑
非常抱歉,事实是我只使用了 puppet 而没有使用 vagrant。但是由于我不是 devops 专家,所以当我的问题被修改为包含 vagrant 时,我就接受了。抱歉造成混淆,让我修改一下我的问题
我可以在没有 vagrant 的情况下进行分离吗?如果我必须这样做的话。
谢谢
您可以将 mysql
class 移动到它自己的模块中
你最终会得到这样的结果
.
├── 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 本身
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,
}
}
在 puppet 中进行模块练习可能是个好主意,但老实说,您更有可能使用现有模块而不是重新发明轮子:https://forge.puppet.com/puppetlabs/mysql/2.2.3 将是一个很好用的模块