Vagrant 使用流浪者+;puppet配置服务器

Vagrant 使用流浪者+;puppet配置服务器,vagrant,puppet,Vagrant,Puppet,我对使用puppet的概念非常陌生,只是想知道是否有人能帮助我正确思考如何在我的服务器上安装新软件 例如,如果我想把“postgres”放在我的服务器上,我应该如何着手研究如何使用puppet来实现这一点 再说一次,我不是专门问博士后,而是问任何一个包裹。(虽然一个postgres的例子会很好。)如果我能用清单文件安装我所有的东西,我真的很喜欢。例如,我是如何安装apache2的: package { 'apache2': ensure => installed } servic

我对使用puppet的概念非常陌生,只是想知道是否有人能帮助我正确思考如何在我的服务器上安装新软件

例如,如果我想把“postgres”放在我的服务器上,我应该如何着手研究如何使用puppet来实现这一点

再说一次,我不是专门问博士后,而是问任何一个包裹。(虽然一个postgres的例子会很好。)如果我能用清单文件安装我所有的东西,我真的很喜欢。例如,我是如何安装apache2的:

package {
    'apache2': ensure => installed
}

service {
    'apache2':
        ensure => true,
        enable => true,
        require => Package['apache2']
}
只要给我一个简短的解释什么网址,我应该检查出来,以找出这些东西为自己

教我钓鱼:)

编辑:

  • 这个apache2软件包来自哪里
  • 我怎样才能找到更多这样的软件包
  • 如果我找不到像“posgresql”这样的包,我应该如何安装它?我需要一种方法,允许我通过设置来安装它。我无法登录到该框并手动安装

  • 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
    }
    
    关于你的问题:

  • 它来自systems package manager(apt、或yum或任何受支持的产品,如win)
  • 操作系统软件包管理器和源支持的所有软件包
  • 你不需要去找包裹。使用模块或自定义模块,所有内容都将包含在您的资源调配中
    还要记住,木偶是加法的。这意味着,如果您删除安装apache的行,但这并不意味着卸载apache,那么在已配置的系统中,将仍然存在一个

    您应该开始考虑如何在没有puppet的情况下安装这些东西,然后您可以编写一个实现这一点的puppet清单,或者找到一个实现您期望的功能的清单

    1和2:puppet中的包类型有几个提供程序(apt、yum等),puppet将选择您正在安装的操作系统中可用的一个

    3:Puppet有一些“本地”类型,您可以在中找到。使用这种类型,您可以编写一个清单,它将完全执行您手动执行的操作

    例如,如果您只需运行
    apt get install apache2
    ,那么您所要做的就是
    package{'apache2':确保=>installed}
    ,但是,当从源代码安装需要更多步骤的东西时,如nginx,则需要获取安装说明并转换为相应的
    exec
    文件
    服务

    关于puppet的另一个很好的信息来源是forge模块,大部分都可以在github上获得,因此您可以检查它们是如何工作的