В суммировании, чистой, протестированной версии кода:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://www\.%{HTTP_HOST}/$1 [R=301,L]
или
RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTP_HOST} ^(.+)$ [NC] RewriteRule ^(.*)$ http://www\.%1/$1 [R=301,L]
Я создал модуль отчетов в Puppet, который решил этот конкретный вариант использования. Репортер пытается прочитать последний отчет yaml, а затем добавить в сообщение дополнительные сведения.
def process
payload = { :host => self.host, :status => self.status, :kind => self.kind }
# if facts file found, read it and add facts to payload:
if File.exists?("#{Puppet[:vardir]}/yaml/facts/#{self.host}.yaml")
new_facts = {}
node_facts = YAML.load_file("#{Puppet[:vardir]}/yaml/facts/#{self.host}.yaml")
node_facts.values.each do |key, value|
new_facts = new_facts.merge({key => value})
end
payload = payload.merge(new_facts)
end
response = HTTParty.post(URL, :body => payload )
Puppet.err "Response code: #{response.code} - #{response.body}" unless response.code == 200
end
Если вы хотите узнать больше о написании настраиваемых отчетов Puppet, проверьте Когда Puppet сообщает, часть 2
Есть ли у вас жесткое требование, чтобы он был в единой CMDB, или цель просто сделать его доступным для запросов? PuppetDB уже предоставляет API для поиска фактов:
http://docs.puppetlabs.com/puppetdb/latest/api/query/v2/facts.html
Строго говоря, сама Puppet не знает, какое значение фактов находятся в конце цикла - только в начале цикла. Я не уверен, каков ваш финал, но поскольку Puppet сам по себе никоим образом не связан с ценностью ваших фактов, лучшим решением, вероятно, будет использование MCollective, а не Puppet для агрегирования сведений о ваших узлах и их сохранения с помощью плагин пользовательской регистрации, который отправляет обратно в вашу CMDB.