default.rb 2.35 KB

# our custom repositories
if node['platform'] == 'centos'
  cookbook_file '/etc/yum.repos.d/softwarepublico.key' do
    owner 'root'
    mode 0644
  end
  template '/etc/yum.repos.d/softwarepublico.repo' do
    owner 'root'
    mode 0644
  end

  unless node['config']['keep_yum_cache']
    execute 'yum_clean_cache' do
      command 'yum clean all'
    end
    # reload internal Chef yum cache
    ruby_block "yum-cache-reload" do
      block { Chef::Provider::Package::Yum::YumCache.instance.reload }
    end
  end
end

# enable EPEL repository by default
package 'epel-release'

# replicate production security setup
package 'selinux-policy'
package 'policycoreutils-python'
cookbook_file '/etc/selinux/config' do
  source  'selinux_config'
  owner   'root'
  group   'root'
  mode    0644
end

cookbook_file '/usr/local/bin/selinux-enabled' do
  owner   'root'
  group   'root'
  mode    '0755'
end

execute 'setenforce Enforcing' do
  only_if 'selinux-enabled'
end
execute 'setsebool -P httpd_can_network_connect 1' do
  only_if 'selinux-enabled'
end
# directory for local type enforcements
directory '/etc/selinux/local' do
  owner   'root'
  group   'root'
  mode    '0755'
end
cookbook_file '/usr/local/bin/selinux-install-module' do
  owner   'root'
  group   'root'
  mode    '0755'
end

package 'vim'
package 'bash-completion'
package 'rsyslog'
package 'tmux'
package 'less'
package 'htop'
package 'ntp'

cookbook_file '/usr/local/bin/is-a-container' do
  owner   'root'
  group   'root'
  mode    '0755'
end
service 'ntpd' do
  action [:enable, :start]
  not_if 'is-a-container'
end

service 'firewalld' do
  action [:disable, :stop]
  ignore_failure true
end

service 'sshd' do
  action [:enable]
end

# FIXME on Debian it's postgresql-client
package 'postgresql'

# reload node[:fqdn] to make sure it reflects the contents of /etc/hosts
# without that the variable :fqdn would not be available on first run
ruby_block 'fqdn:update' do
  block do
    node.default[:fqdn] = `hostname --fqdn`.strip
  end
  action :nothing
end

execute 'avoid_etc_hosts_being_overwriten' do
  command 'sed -i -e \'/^\s*-\s*update_etc_hosts/d\' /etc/cloud/cloud.cfg'
  only_if { File.exist?('/etc/cloud/cloud.cfg') }
end

template '/etc/hosts' do
  owner 'root'
  mode  0644
  notifies :run, 'ruby_block[fqdn:update]', :immediately
  notifies :run, 'execute[avoid_etc_hosts_being_overwriten]', :immediately
end