class Apt
Public Instance Methods
deploy()
click to toggle source
# File lib/dust/recipes/apt.rb, line 3 def deploy return unless @node.uses_apt? @config = default_config.merge @config unattended_upgrades @config.delete('unattended_upgrades') proxy @config.delete('proxy') @config.each do |name, settings| @node.messages.add("deploying apt settings #{name}\n") conf = '' Array(settings).each do |setting| conf << "#{setting}\n" end @node.write "/etc/apt/apt.conf.d/#{name}", conf, :indent => 2 end end
Private Instance Methods
default_config()
click to toggle source
# File lib/dust/recipes/apt.rb, line 24 def default_config { 'unattended_upgrades' => { 'enable' => 1, 'update-package-lists' => 1, 'unattended-upgrade' => 1, 'autocleaninterval' => 1, 'verbose' => 0 }, 'proxy' => 'disabled' } end
proxy(config)
click to toggle source
# File lib/dust/recipes/apt.rb, line 54 def proxy config # look for already configured proxy and delete files = @node.exec("grep -v '^#' /etc/apt/ -R |grep -i 'acquire::http::proxy' |cut -d: -f1")[:stdout] files.each_line do |file| file.chomp! # skip 02proxy, because we're going to overwrite it anyways next if file == '/etc/apt/apt.conf.d/02proxy' @node.messages.add("found proxy configuration in file #{file}, commenting out").warning @node.exec "sed -i 's/^\\(acquire::http::proxy.*\\)/#\\1/i' #{file}" end return if config.is_a? FalseClass or config == 'disabled' @node.messages.add("deploying proxy configuration\n") proxy = "Acquire::http::Proxy \"#{config}\";\n" @node.write '/etc/apt/apt.conf.d/02proxy', proxy, :indent => 2 end
unattended_upgrades(config)
click to toggle source
# File lib/dust/recipes/apt.rb, line 38 def unattended_upgrades config return if config.is_a? FalseClass or config == 'disabled' @node.install_package 'unattended-upgrades' @node.messages.add("deploying unattended upgrades configuration\n") periodic = '' periodic << "APT::Periodic::Enable \"#{config['enable']}\";\n" periodic << "APT::Periodic::Update-Package-Lists \"#{config['update-package-lists']}\";\n" periodic << "APT::Periodic::Unattended-Upgrade \"#{config['unattended-upgrade']}\";\n" periodic << "APT::Periodic::AutocleanInterval \"#{config['autocleaninterval']}\";\n" periodic << "APT::Periodic::Verbose \"#{config['verbose']}\";\n" @node.write '/etc/apt/apt.conf.d/02periodic', periodic, :indent => 2 end