030 Asked: 2016-07-10 11:11:29 +0800 CST2016-07-10 11:11:29 +0800 CST 2016-07-10 11:11:29 +0800 CST Ansible 中 r10k 的等价物是多少? 772 可以使用r10k部署像puppetforge这样的 Puppet 模块。 问题 Ansible 中这个工具的等价物是什么? 尝试回答问题 发现此 Google Q&A未回答问题 ansible r10k 2 个回答 Voted Best Answer 030 2016-07-28T01:02:50+08:002016-07-28T01:02:50+08:00 根据与@ceejayoz 的讨论,结论是 Ansible 相当于 Puppet 的 R10K 是ansible-galaxy install -r requirements.yml. R10K 在R10K中使用了 Puppetfile。Puppetfile是需要在特定环境中组装的模块(例如来自 Puppetforge )的定义,例如开发环境的 Puppetfile 可能如下所示: mod 'garethr/docker', '5.3.0' mod 'unibet/vagrant', '0.2.1' mod 'jenkins', :git => 'https://github.com/jenkinsci/puppet-jenkins', :ref => 'master' mod 'jdk_oracle', :git => 'https://github.com/schrepfler/puppet-jdk_oracle.git', :ref => 'master' 虽然 Production Puppetfile 包含稳定版本: mod 'garethr/docker', '5.2.0' mod 'unibet/vagrant', '0.2.0' mod 'schrepfler/puppet-jdk_oracle', '0.2.0' mod 'rtyler/jenkins', '1.6.1' 相当于ansible中的r10k 为了从 Ansible - Ansible Galaxy中 Puppet 的 Puppetforge 等效项或自定义源中组装角色(等效于 Puppet 的模块),可以在yml文件中定义角色或源(基于@ceejayoz 提供的链接和此链接)。开发环境可能如下所示: 开发.yml - src: geerlingguy.composer version: 1.3.0 - src: geerlingguy.java version: 1.2.1 - src: bennojoy.mysql - src: https://github.com/ANXS/postgresql.git version: master 它可以通过发出sudo ansible-galaxy install -r development.yml. 虽然生产可能看起来像: 生产.yml - src: geerlingguy.composer version: 1.2.0 - src: geerlingguy.java version: 1.1.1 并通过执行来运行sudo ansible-galaxy install -r production.yml。结果可能如下所示: user@host ~ $ sudo ansible-galaxy install -r development.yml - geerlingguy.composer is already installed, skipping. - downloading role 'java', owned by geerlingguy - downloading role from https://github.com/geerlingguy/ansible-role-java/archive/1.2.1.tar.gz - extracting geerlingguy.java to /etc/ansible/roles/geerlingguy.java - geerlingguy.java was installed successfully - bennojoy.mysql is already installed, skipping. andyfeller 2016-08-24T07:25:28+08:002016-08-24T07:25:28+08:00 认为 ansible-galaxy 只是答案的一半,因为它对 Ansible 剧本没有任何作用,后者是 Puppet 角色模块的代名词。r10k 的好处之一是您可以分别管理每个环境的所有方面。 您可以考虑每个环境单独的分支,所有 Ansible 角色都通过 ansible-galaxy 引入。这将使您能够隔离每个环境的剧本、库存和角色更改,而不会无意中让它们进入生产环境,也不会在每个分支中重复角色逻辑。
根据与@ceejayoz 的讨论,结论是 Ansible 相当于 Puppet 的 R10K 是
ansible-galaxy install -r requirements.yml
.R10K
在R10K中使用了 Puppetfile。Puppetfile是需要在特定环境中组装的模块(例如来自 Puppetforge )的定义,例如开发环境的 Puppetfile 可能如下所示:
虽然 Production Puppetfile 包含稳定版本:
相当于ansible中的r10k
为了从 Ansible - Ansible Galaxy中 Puppet 的 Puppetforge 等效项或自定义源中组装角色(等效于 Puppet 的模块),可以在
yml
文件中定义角色或源(基于@ceejayoz 提供的链接和此链接)。开发环境可能如下所示:开发.yml
它可以通过发出
sudo ansible-galaxy install -r development.yml
. 虽然生产可能看起来像:生产.yml
并通过执行来运行
sudo ansible-galaxy install -r production.yml
。结果可能如下所示:认为 ansible-galaxy 只是答案的一半,因为它对 Ansible 剧本没有任何作用,后者是 Puppet 角色模块的代名词。r10k 的好处之一是您可以分别管理每个环境的所有方面。
您可以考虑每个环境单独的分支,所有 Ansible 角色都通过 ansible-galaxy 引入。这将使您能够隔离每个环境的剧本、库存和角色更改,而不会无意中让它们进入生产环境,也不会在每个分支中重复角色逻辑。