目前我想使用(opscode)Chef来配置我们机器上的所有路线。由于我非常懒惰,我已经在互联网上搜索了一本现成的食谱但却找不到任何东西。我知道,Chef有一个配置路由“https://docs.chef.io/resource_route.html”的功能,但这对我们的用例来说还不够。我们在MZ和DMZ的不同放置区域(prod,preprod,dev)中有VM,每个都有不同的网关。 如果我找不到可以区分它的食谱,我需要自己写一本。我的想法是通过ruby分析节点名称,并使用循环和chef-route资源来创建所有路由。
if /_prod/ =~ Chef::Config[:node_name]
所以我的希望是,有人已经使用厨师来配置企业规模的路线,可以帮助我或社区为我提供一些关于自己开发食谱的想法
答案 0 :(得分:0)
你的环境描述(尤其是厨师)并不是很详细,所以我会回答我的看法:
根据您在节点运行列表中包含一个或多个包装器菜谱的方式。对路径进行更改(在包装器中)将在相应的环境中锁定它们。
对于路线管理,可能是每个"区域的包装"如果您的某个区域恰好与一个环境匹配,那么这是最好的选择。
警告:这是一个基于我当前环境以及如何操作的例子,我实际上并没有使用下面的代码。
对于我们的基础架构,我们在同一安全区域(vlan)内有3个QA环境(太多),因此我们需要更改应用程序生命周期的路由,锁定机制可以随时更改部分节点路由而不是区域中的整个节点。
对于食谱(上面第3点,我们将其命名为“my_routing_cookbook”),它非常简单" 在属性中,我们有:
default['sec']['default'] = { gw: '192.168.1.250', device: 'eth1' }
default['sec']['routes']['172.16.0.0/16'] = { gw: '192.168.1.254', device: 'eth0' }
default['sec']['routes']['10.0.0.0/8'] = { gw: '192.168.1.254', device: 'eth0' }
在食谱中:
route '0.0.0.0/0' do
gateway node['sec']['default']['gw']
device node['sec']['default']['device']
end
node['sec']['routes'].each as |r,properties|
route r do
gateway properties['gw']
device properties['device']
end
end
默认网关可能位于路由列表中,我认为非网络用户最容易将其保留为默认网关。
对于第2点,每个包装器菜谱将依赖于此菜谱并设置它自己的属性。 Thoose cookbook将default.rb
只需拨打include_recipe 'my_routing_cookbook'
希望它能帮助您入门。