标签: puppet

如何自动设置开发环境?

我的任务是在多台Windows机器上建立基于Java的开发环境.问题是我希望在每台机器上自动轻松地完成这个过程,这样开发人员就不必浪费时间下载和安装所有不同的应用程序.理想情况下,我希望有以下内容:

  • 自动和无人值守的初始安装
  • 这些安装上的某种监视器可以确保所有机器之间的设置保持不变
  • 可以在需要时推送新设置/程序/升级.

我已经研究了几种工具.目前最有前途的似乎是Puppet.但是,Puppet在Windows中不能正常工作......使用VM映像可以解决第一个要求,但由于硬件在整个机器上不同并且升级不容易,因此它是不可能的.

有没有人有过这种任务的经验?你会如何解决它?

java development-environment provisioning puppet

10
推荐指数
1
解决办法
1635
查看次数

Chef/Fabric/Puppet用于简单LAMP开发的替代方案?

我终于承诺真正学习软件设计过程,以提高我的技能和发展我的业务.这意味着采用版本控制(git),设置开发阶段生产环境并尽可能保持这些环境的配置.

在选择自动化和同步我的服务器设置的解决方案时,我真的赶上了最后一步.我看过Chef,Puppet&Fabric,但就我的目的而言,它们看起来都过于复杂.我是:

  • 在单个服务器上开发小型Web应用程序
  • 将在具有中级PHP和UNIX技能的LAMP环境中开发
  • 不会大量修改环境变量(主要是php.ini,apache configs)

对于比掌握复杂的Chef环境或学习Python使用Fabric更容易实现的解决方案,我将不胜感激.如果有必要,我可以这样做,但我希望有一个更基本/更优雅的解决方案,因为我非常简单的需求.

php lamp puppet chef-infra

10
推荐指数
2
解决办法
4544
查看次数

在ruby中将ip地址转换为32位整数

我试图找到一种方法将Ruby地址转换为32位整数,用于木偶模板.

这就是我在bash中进行转换的方式.

root@ubuntu-server2:~# cat test.sh 
#!/bin/bash

#eth0 address is 10.0.2.15
privip=`ifconfig eth0 | grep "inet addr:" | cut -d : -f 2 | cut -d " " -f 1` ;

echo "Private IP: ${privip}" ;

# Turn it into unsigned 32-bit integer

ipiter=3 ;

for ipoctet in `echo ${privip} | tr . " "` ;
    do
    ipint=$(( ipint + ( ipoctet * 256 ** ipiter-- ) )) ;
    done ;

echo "Private IP int32: ${ipint}" ;
Run Code Online (Sandbox Code Playgroud)

.

root@ubuntu-server2:~# bash test.sh …
Run Code Online (Sandbox Code Playgroud)

ruby integer puppet

10
推荐指数
2
解决办法
7578
查看次数

傀儡如何使傀儡等待几秒钟

我想运行一个Web服务并等待几秒钟后才能得到结果.

在傀儡中等待的最佳方法是什么?

puppet wait

10
推荐指数
1
解决办法
9899
查看次数

是否有基于Node.js的替代Puppet或Chef?

基本上,标题说明了一切:是否有基于Node.js的替代配置工具,如Puppet或Chef?

provisioning puppet node.js chef-infra

10
推荐指数
1
解决办法
2306
查看次数

简单的木偶脚本来复制文件

嗨,我是木偶的新手,并尝试处理样本,将文件从一个位置复制到另一个位置.有任何示例脚本吗?

例如:我的文件位于d:\ temp\test.txt,我想将此文件复制到E:\ mycopy \文件夹.

puppet puppetlabs-apache

10
推荐指数
1
解决办法
2万
查看次数

pip install -r requirements.txt from puppet?

我有一个pip样式的requirements.txt文件,用于跟踪我的python依赖项,我正在将我的开发环境移动到vagrant + puppet.到目前为止,我一直在使用内置于puppet的pip提供程序来安装这样的单个包:

package {
  ["django", "nose"]:
      ensure => present,
      provider => pip
}
Run Code Online (Sandbox Code Playgroud)

是否有可能传递我的requirements.txt并让puppet在文件发生变化时保持包更新?

python pip puppet

10
推荐指数
1
解决办法
3534
查看次数

使用docker,puppet和jenkins进行持续交付和PROD部署

需要为新项目设置基础架构.以前我用jenkins单独使用puppet,但现在我正在考虑使用docker构建,这样我就可以从开发到阶段到生产而不会触发构建,只需简单地获取已经存在的docker现有docker图像建成.

该应用程序:

  • 带有restgi的Java Web应用程序,由postgresql,neo4j,elasticsearch支持
  • 用angular写的客户端应用程序通过rest api与java对话
  • 存储在git存储库中的代码

ENVS:

  • 开发服务器(构建,开发+测试环境) - 32GB linux机器
  • 测试服务器(AWS)
  • 生产(AWS)

建立:

所以基本上我在想这样的事情:

  • 单独的Docker镜像为java + cient side app,postgresql,elasticsearch,neo4j相互通信,并通过Docker卷将数据存储在主机上,或者使用Docker数据容器(尚未确定方法)
  • Jenkins构建所有代码并创建将被推送到私有内部存储库的Docker镜像
  • 集成测试与DEV服务器上的Puppet docker模块一起运行
  • 使用Docker通过puppet将jenkins推向生产

我为什么要使用码头工具?

  • 大开发机器 - 可以轻松运行我的应用程序的多个实例而无需虚拟化(可能有一个不稳定的开发,稳定的开发,坐等)
  • 易于部署(使用docker和puppet docker模块)和回滚(只需从Docker存储库中检索以前的版本)
  • 快速迁移和生成新实例的能力
  • 准备轻松扩展系统的不同部分(例如,群集弹性搜索)

问题

  • 这看起来合理吗?
  • 我正在考虑使用这个木偶模块https://github.com/garethr/garethr-docker.如何通过它更新我的环境?我必须以某种方式停止docker容器,做一个docker rm,然后docker run?
  • 我们使用liquibase进行数据库更新管理.猜猜这应该来自docker的更新/回滚吗?

欢迎任何建议,谢谢.

puppet jenkins docker

10
推荐指数
1
解决办法
6169
查看次数

无法从环境生产源检索信息

我在我的一个流浪项目中使用木偶作为我的供应者.我正在尝试为自定义bash_profile添加模块.

module_path对木偶被设置为:

 puppet.module_path = "puppet/modules"
Run Code Online (Sandbox Code Playgroud)

我的bash_profile模块的类看起来像这样:

class bash_profile
{
    file
    {
        "/home/vagrant/bash_profile":
            ensure => present,
            source => "puppet:///modules/bash_profile/files/bash_profile"
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的木偶结构的文件结构:

puppet
| manifests
| | phpbase.pp // my main manifest file that has includes for modules
| modules
| | bash_profile
| | | files
| | | | bash_profile // the actual bash_profile file I want to ensure is present on my VM
| | | manifests
| | | | init.pp // the init file …
Run Code Online (Sandbox Code Playgroud)

provisioning puppet vagrant vagrantfile

10
推荐指数
1
解决办法
2万
查看次数

如何使用Vagrant,Chef和/或Puppet使用机器特定的SSL证书来配置VM?

我有一个要求,我想在几个虚拟机上配置Java应用程序所需的机器特定SSL证书(使用机器的IP /主机名生成).

我可以提前创建这些证书,如QA-Machine01,Prod-Machine01等名称,并可以将它们保存在某个文件夹中.

如何让Vagrant动态选择这些证书,获取它的名称(QA-Machine01,Prod-Machine01)并使用证书名称为机器名配置VM?

puppet ssl-certificate chef-infra vagrant

10
推荐指数
1
解决办法
326
查看次数