我们计划使用非"预烘烤"的AMI EC2实例.即,当它们被旋转时,它们只是AWS linux的安装.我们的引导过程将引入我们需要的各种安装,例如python,tomcat.我们最少有3个实例,最多8个实例.
鉴于这些要求,使用Puppet/Chef是否有用而不是使用Amazon Cloud Formation(CloudInit)?
我能看到的最好的是如果我们使用Puppet,那么我们就会进行声明性编程,这样可以更容易地进行审计,以查看脚本发生了什么.此外,CloudInit有一个16k的脚本大小限制,我们可能会或可能不会遇到.
有没有人从CloudInit转移到Puppet或Chef,因为他们可以在这里回答我的问题?
我即将启动一个项目(.NET),需要在TFS和SVN之间做出决定.
我更习惯SVN(与龟客户端),CVS和VSS.TFS是否具有SVN中的所有功能
有没有人从SVN切换到TFS并发现它值得吗?
如果我们需要使用TFS,我们可能还需要Visual Studio.
[编辑]
因为我们已经拥有TFS的许可证,所以钱不是一个考虑因素.我对TFS vs SVN的Source Control功能更感兴趣,当然其他功能列表也很受欢迎.
在Ansible角色中,我生成用户的SSH密钥.之后,我想将其打印到屏幕并暂停,以便用户可以将其复制并粘贴到其他位置.到目前为止,我有这样的事情:
- name: Generate SSH keys for vagrant user
user: name=vagrant generate_ssh_key=yes ssh_key_bits=2048
- name: Show SSH public key
command: /bin/cat $home_directory/.ssh/id_rsa.pub
- name: Wait for user to copy SSH public key
pause: prompt="Please add the SSH public key above to your GitHub account"
Run Code Online (Sandbox Code Playgroud)
"显示SSH公钥"任务完成但未显示输出.
TASK: [Show SSH public key] ***************************************************
changed: [default]
Run Code Online (Sandbox Code Playgroud)
可能有更好的方法来解决这个问题.我真的不喜欢它总会显示出"已更改"的状态.我确实找到了这个对ansible的请求 - https://github.com/ansible/ansible/pull/2673 - 但不确定我是否可以在不编写自己的模块的情况下使用它.
问题
我有一组客户机,它们是企业Web应用程序的一部分.每台机器运行相同的软件,这是一个连接到服务器的基于PyQT的Web客户端.这个客户端软件定期更新,我希望有一些配置/配置工具,允许在每台机器上拥有相同的环境,从而在每个客户机器上轻松部署和配置软件.
问题是我尝试使用Chef,但实际维护Chef知识和技能需要付出很多努力(我们没有专门的Ops人),而且如果某个第三方存储库不再存在,则Chef配方可能会失败可用(这是一个主要的塞子).
我想尝试使用Docker解决问题,但我仍然不知道是否可以设置允许某些基于GUI的软件运行的图像/容器.
题
是否可以使用Docker为基于GUI的应用程序(PyQt/QT)提供开发/生产环境?如果是的话,接下来的第一步是什么?
任何人都可以简单地解释一下配置管理和版本控制之间的区别是什么?从我在各种网站上可以找到的描述来看,配置管理似乎只是将配置文件放在源控制存储库中的一个奇特的术语.但其他人让我相信有一个更复杂的解释.
我正在开发一个有4个产品的产品套件.现在,所有配置数据都在XML或属性文件中.这种方法是不可维护的,因为我们必须管理不同环境的不同配置文件(例如生产,开发等).
那么,处理配置数据的最佳方法是什么?
另外,我们可以将其模块化为一个单独的模块吗?这样所有产品都可以使用这个模块.我们不想使用属性文件.我正在寻找一种解决方案,我们可以将所有配置特定代码作为新的配置模块移动,并将所有配置数据保存在数据库中.
题
任何人都可以解释为什么选择木偶或厨师流浪汉供应者而不是壳供应商会更好吗?
背景
我正在开始使用Vagrant.我遇到问题的一个原因是决定使用哪个配置器.到目前为止,我已经使用shell配置程序取得了一些成功,但是它比我预期的更可靠地运行它.
目前,我不熟悉红宝石,木偶或厨师,但如果必须,我很乐意学习其中的任何一个或全部.我与木偶和厨师一起玩的早期经验是,如果其他人的配方完全符合您的要求,那么它的效果非常好,但做一些非标准的工作意味着在红宝石中编写解决方案.
我知道有关比较傀儡和厨师的文章,我不太担心他们使用哪一个,而不是知道何时以及为什么我应该使用它们.
您(您的公司)如何管理您构建的应用程序/系统的配置文件?让我告诉你我们是如何做到的,以及问题是什么.
我在一家公司工作,我们与大约15名开发人员一起开发软件.我们构建了部署在托管主机提供商处的业务线网络应用程序.我们的主要应用程序之一包括一个网站和大约十个WCF服务.一些服务相互连接.
我不知道这是一个大系统,还是小系统,但我认为这需要我们太长时间才能在不同的环境(测试,验收和生产)中运行起来.
我们的Visual Studio项目中的每个环境都有配置文件.所以a web.test.config
,a web.acc.config
,a web.prod.config
和a web.config
for development.它们都具有相同的键,但值可能不同,具体取决于它们的环境.
如果我快速计算webapp的web应用程序中的appsettings,我会计算32个.我计算5个端点.我们有四个环境(dev,test,acc和prod),这意味着一个Web应用程序共有128个appsettings和20个端点.我们很容易犯错误,特别是在最后期限结束时.
我们都是人类,所以这样的事情可能发生在任何人身上:
然后我们在托管主机提供商处拥有基础设施.默认情况下,每个端口都关闭.因此,如果其中一个WCF服务需要与位于不同服务器上的其他一个WCF服务进行通信,则必须打开防火墙保护的端口.
我们在Test中执行此操作,但在Acceptance中我们必须再次执行此操作,并且我们忘记了必须打开哪些端口,因此它更像是试错:哦我的服务无法连接到数据库,可能是港口关闭.生产中也可能出现同样的问题.
根据SLA,我们的托管主机提供商可能需要几天时间才能在防火墙中打开端口.所以,这很快就会成为一个漫长的过程.最后,我们需要两个月的时间才能完成测试,验收和生产.
所以,我的问题是:你如何管理配置和基础设施及其周围的过程?
deployment environment configuration configuration-management
chef-infra ×4
puppet ×3
vagrant ×2
.net ×1
ansible ×1
bash ×1
cfengine ×1
cloud-init ×1
command-line ×1
deployment ×1
docker ×1
environment ×1
java ×1
modularity ×1
qt ×1
salt-stack ×1
ssh ×1
svn ×1
tfs ×1
windows ×1