Vagrant 使用流浪者+;puppet配置服务器
我对使用puppet的概念非常陌生,只是想知道是否有人能帮助我正确思考如何在我的服务器上安装新软件 例如,如果我想把“postgres”放在我的服务器上,我应该如何着手研究如何使用puppet来实现这一点 再说一次,我不是专门问博士后,而是问任何一个包裹。(虽然一个postgres的例子会很好。)如果我能用清单文件安装我所有的东西,我真的很喜欢。例如,我是如何安装apache2的:Vagrant 使用流浪者+;puppet配置服务器,vagrant,puppet,Vagrant,Puppet,我对使用puppet的概念非常陌生,只是想知道是否有人能帮助我正确思考如何在我的服务器上安装新软件 例如,如果我想把“postgres”放在我的服务器上,我应该如何着手研究如何使用puppet来实现这一点 再说一次,我不是专门问博士后,而是问任何一个包裹。(虽然一个postgres的例子会很好。)如果我能用清单文件安装我所有的东西,我真的很喜欢。例如,我是如何安装apache2的: package { 'apache2': ensure => installed } servic
package {
'apache2': ensure => installed
}
service {
'apache2':
ensure => true,
enable => true,
require => Package['apache2']
}
只要给我一个简短的解释什么网址,我应该检查出来,以找出这些东西为自己
教我钓鱼:)
编辑:
apache2
包来自您的分发包管理器,对Puppet来说不是什么特别的东西。您需要检查它的文档,以查看还有哪些其他包可用
但是,要开始使用,最好的方法是检查,在那里可以找到现成的软件包。最好的方法是使用已经编写好的模块 Apache可能只是一个包,但如何进一步配置它呢 我建议对模块使用默认的forge存储库 在那里,你会发现你想要使用的每个包或服务都有太多的模块 还有一些例子42模块很好 我所说的一个小例子。假设您已经安装了apache,并且希望安装php模块。这将需要apache重新启动,等等。这可能会让维护变得相当麻烦 代码:
include apt, apache
# Enable rewrite module
apache::module { 'rewrite': }
# Add MySQL, curl and xdebug modules
php::module { 'mysql': }
php::module { 'curl': }
php::module { 'xdebug': }
# Set php ini params
php::ini { 'xdebug-remote':
value => [
'xdebug.remote_enable = 1'
],
notify => Service['apache'], # this sets up the relationship
}
php::ini { 'security' :
target => 'security.ini',
value => [
'session.cookie_httponly = 1',
'session.cookie_secure = 0',
'allow_url_fopen = 0',
'expose_php = 0',
'max_input_vars = 250',
'disable_functions = exec,passthru,shell_exec,system,proc_open,popen,show_source'
],
notify => Service['apache'], # this sets up the relationship
}
关于你的问题:
还要记住,木偶是加法的。这意味着,如果您删除安装apache的行,但这并不意味着卸载apache,那么在已配置的系统中,将仍然存在一个 您应该开始考虑如何在没有puppet的情况下安装这些东西,然后您可以编写一个实现这一点的puppet清单,或者找到一个实现您期望的功能的清单 1和2:puppet中的包类型有几个提供程序(apt、yum等),puppet将选择您正在安装的操作系统中可用的一个 3:Puppet有一些“本地”类型,您可以在中找到。使用这种类型,您可以编写一个清单,它将完全执行您手动执行的操作 例如,如果您只需运行
apt get install apache2
,那么您所要做的就是package{'apache2':确保=>installed}
,但是,当从源代码安装需要更多步骤的东西时,如nginx,则需要获取安装说明并转换为相应的exec
,文件
和服务
关于puppet的另一个很好的信息来源是forge模块,大部分都可以在github上获得,因此您可以检查它们是如何工作的