在私人团队中分享完美剧本的最佳做法?

我正在研究将我们现在的基于厨师的configurationpipe理迁移到合理的。

我们构build了许多具有类似依赖关系的rails应用程序(ruby,unicorn,nginx,monit,MySQL等)。

所以目前我们正在使用图书pipe理员厨师和私人github回购在不同的项目之间分享我们的共同食谱。

我是一个新人,我发现的最接近的事实是一个天才的星系,但这似乎是一个“开放式”的东西。

在私人环境中,这是什么常见/最佳做法?

Git子模块是唯一可以想到的答案,但是如果我们习惯了在厨师世界中使用某种更自动化的东西,那就太棒了。

两个主要的解决scheme: roles_pathroles_path ansible-galaxy

roles_path

首先configurationroles_pathansible.cfg

在Ansible 1.4及更高版本中,您可以configuration一个roles_path来searchangular色。 使用此function可以将所有常见angular色检查到一个位置,并在多个Playbook项目之间轻松共享。 有关如何在ansible.cfg中设置的详细信息,请参阅Ansibleconfiguration文件。

所以你必须把你的共享angular色放在一些文件夹中,例如:

 roles_path = /opt/ansible/common_roles/:/opt/ansible/other_roles/ 

来自: http : //docs.ansible.com/playbooks_roles.html#introduction

ansible星系

其次,你可以使用ansible-galaxy命令行:

 ansible-galaxy install -r requirements.yml 

有以下requirements.yml:

 # from github, overriding the name and specifying a specific tag - src: https://github.com/bennojoy/nginx version: master name: nginx_role # from a webserver, where the role is packaged in a tar.gz - src: https://some.webserver.example.com/files/master.tar.gz name: http-role 

所以你可以通过zip文件托pipe你的共享angular色。

来自: http : //docs.ansible.com/galaxy.html#the-ansible-galaxy-command-line-tool

就社区支持而言,Ansible比厨师,Puppet和其他工具要早一些。

所以,我相信你现在运气不好。 与librarian-chef最接近的是Ansible Galaxy ,这仍然是一个正在进行的工作(Beta)。 就像你说的那样公开 话虽如此,但这并不意味着Ansible本身或者第三方开发者就不会再像Ansible这样的playbook team packager。

现在,我们只是坚持一个普通的git仓库,将不同目录或不同angular色的剧本分开。 毕竟,git被devise为与多个开发人员一起使用。 我猜你可以使用多个git子库来完成一个私有的Ansible Galaxy,但是pipe理git sub-repos并不是一个简单的任务,特别是如果你有很多的git sub-repos。

Interesting Posts