[cookbooks] Some improvements in cobbler, nailgun cookbooks
This commit is contained in:
parent
f68a00bfa9
commit
adde9df99b
|
@ -7,14 +7,13 @@ default["cobbler"]["gateway"] = default_conf[:gateway]
|
|||
default["cobbler"]["pxetimeout"] = "20" #10=1sec
|
||||
default["cobbler"]["repoaddr"] = default_conf[:server]
|
||||
|
||||
default["cobbler"]["user"] = "cobbler"
|
||||
default["cobbler"]["password"] = "cobbler"
|
||||
|
||||
default["cobbler"]["ks_mirror_dir"] = "/var/www/cobbler/ks_mirror"
|
||||
default["cobbler"]["preseed_dir"] = "/var/lib/cobbler/kickstarts"
|
||||
|
||||
default["cobbler"]["bootstrap_mnt"] = "/var/lib/mirror/bootstrap"
|
||||
# default["cobbler"]["bootstrap_kernel"] = "/var/lib/mirror/bootstrap/linux"
|
||||
# default["cobbler"]["bootstrap_initrd"] = "/var/lib/mirror/bootstrap/initrd.gz"
|
||||
|
||||
|
||||
default["cobbler"]["precise-x86_64_iso"] = "/var/lib/mirror/netinst/precise-x86_64.iso"
|
||||
default["cobbler"]["precise-x86_64_mnt"] = "/var/lib/mirror/netinst/precise-x86_64"
|
||||
|
|
|
@ -5,8 +5,13 @@ version "0.0.1"
|
|||
recipe "cobbler::default", "Installs cobbler, dnsmasq, tftp-hpa and configures cobbler"
|
||||
recipe "cobbler::bootstrap", "Installs bootstrap distro, profile and system"
|
||||
recipe "cobbler::precise-x86_64", "Installs precise-x86_64 distro and profile"
|
||||
recipe "cobbler::centos-6.2-x86_64", "Installs centos-6.2-x86_64 distro and profile"
|
||||
|
||||
%w{ ubuntu }.each do |os|
|
||||
supports os
|
||||
end
|
||||
|
||||
%w{ nailgun }.each do |cookbook|
|
||||
depends cookbook
|
||||
end
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ template "#{node.cobbler.preseed_dir}/centos-6.2-x86_64.ks" do
|
|||
group "root"
|
||||
mode "0644"
|
||||
variables(
|
||||
:late_authorized_keys => LateFile.new("/root/.ssh/id_rsa.pub"),
|
||||
:late_authorized_keys => LateFile.new("#{node.nailgun.root}/.ssh/id_rsa.pub"),
|
||||
:late_deploy => LateFile.new("/opt/nailgun/bin/deploy")
|
||||
)
|
||||
end
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
include_recipe "nailgun::server"
|
||||
|
||||
# Here are packages cobbler needs to have to work correctly
|
||||
|
||||
package "cobbler" do
|
||||
|
@ -43,6 +45,17 @@ template "/etc/cobbler/settings" do
|
|||
notifies :restart, "service[cobbler]"
|
||||
end
|
||||
|
||||
script "/etc/cobbler/users.digest" do
|
||||
interpreter "bash"
|
||||
user "root"
|
||||
code <<-EOH
|
||||
htpasswd -D /etc/cobbler/users.digest #{node.cobbler.user} || true
|
||||
printf "#{node.cobbler.user}:Cobbler:#{node.cobbler.password}" | md5sum | awk '{print $1}' >> /etc/cobbler/users.digest
|
||||
EOH
|
||||
not_if "grep -q \"^#{node.cobbler.user}:\" /etc/cobbler/users.digest"
|
||||
notifies :restart, "service[cobbler]"
|
||||
end
|
||||
|
||||
execute "cobbler_sync" do
|
||||
command "cobbler sync"
|
||||
returns [0,155]
|
||||
|
@ -56,6 +69,7 @@ template "/etc/cobbler/dnsmasq.template" do
|
|||
:dhcp_range => node["cobbler"]["dhcp_range"],
|
||||
:gateway => node["cobbler"]["gateway"]
|
||||
)
|
||||
notifies :restart, "service[cobbler]"
|
||||
notifies :run, "execute[cobbler_sync]"
|
||||
end
|
||||
|
||||
|
@ -65,6 +79,7 @@ template "/etc/cobbler/pxe/pxedefault.template" do
|
|||
variables(
|
||||
:pxetimeout => node["cobbler"]["pxetimeout"]
|
||||
)
|
||||
notifies :restart, "service[cobbler]"
|
||||
notifies :run, "execute[cobbler_sync]"
|
||||
end
|
||||
|
||||
|
@ -92,10 +107,3 @@ include_recipe "cobbler::bootstrap"
|
|||
include_recipe "cobbler::precise-x86_64"
|
||||
include_recipe "cobbler::centos-6.2-x86_64"
|
||||
|
||||
|
||||
# FIXME
|
||||
# TO WORK CORRECTLY COBBLER NEEDED TO BE RESTRTED AND RESYNCED
|
||||
# ruby_block "notify cobbler sync" do
|
||||
# block {}
|
||||
# notifies :run, "execute[cobbler_sync]"
|
||||
# end
|
||||
|
|
|
@ -9,7 +9,7 @@ template "#{node.cobbler.preseed_dir}/precise-x86_64.seed" do
|
|||
group "root"
|
||||
mode "0644"
|
||||
variables(
|
||||
:late_authorized_keys => LateFile.new("/root/.ssh/id_rsa.pub"),
|
||||
:late_authorized_keys => LateFile.new("#{node.nailgun.root}/.ssh/id_rsa.pub"),
|
||||
:late_deploy => LateFile.new("/opt/nailgun/bin/deploy")
|
||||
)
|
||||
end
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
install
|
||||
url --url http://<%= node.cobbler.repoaddr %>/centos/6.2
|
||||
#url --url http://<%= node.cobbler.repoaddr %>/cblr/ks_mirror/centos-6.2-x86_64
|
||||
#repo --name=base --baseurl=http://<%= node.cobbler.repoaddr %>/centos/6.2
|
||||
lang en_US.UTF-8
|
||||
keyboard us
|
||||
reboot
|
||||
|
@ -54,18 +52,21 @@ enabled=1
|
|||
gpgcheck=0
|
||||
EOF
|
||||
|
||||
|
||||
# configure ssh key
|
||||
mkdir -p /root/.ssh
|
||||
chown -R root:root /root/.ssh
|
||||
chmod 700 /root/.ssh
|
||||
<%= @late_authorized_keys.init.cobbler_late_file("/opt/nailgun/.ssh/authorized_keys", "644") %>
|
||||
<%= @late_authorized_keys.init.cobbler_late_file("/root/.ssh/authorized_keys", "644") %>
|
||||
|
||||
# deploy script
|
||||
mkdir -p /opt/nailgun/bin
|
||||
<%= @late_deploy.init.cobbler_late_file("/opt/nailgun/bin/deploy", "755") %>
|
||||
|
||||
# install chef
|
||||
gem sources -a http://<%= node.cobbler.repoaddr %>/gems/gems
|
||||
gem install chef -r --no-ri --no-rdoc
|
||||
|
||||
# nopxe
|
||||
$SNIPPET('disable_pxe')
|
||||
|
||||
|
|
|
@ -15,6 +15,12 @@ define :ssh_keygen, :length => 2048 do
|
|||
mode '755'
|
||||
recursive true
|
||||
end
|
||||
|
||||
directory "#{homedir}/.ssh" do
|
||||
owner username
|
||||
group groupname
|
||||
mode '700'
|
||||
end
|
||||
|
||||
execute "Generate ssh key for #{username}" do
|
||||
command "ssh-keygen -t #{keytype} -b #{params[:length]} -N '' -f #{homedir}/.ssh/id_#{keytype}"
|
||||
|
@ -23,4 +29,20 @@ define :ssh_keygen, :length => 2048 do
|
|||
group groupname
|
||||
end
|
||||
|
||||
file "#{homedir}/.ssh/id_#{keytype}" do
|
||||
owner username
|
||||
group groupname
|
||||
mode '600'
|
||||
end
|
||||
|
||||
execute "Public ssh key for #{username}" do
|
||||
command "ssh-keygen -y -f #{homedir}/.ssh/id_#{keytype} > #{homedir}/.ssh/id_#{keytype}.pub"
|
||||
creates File.join(homedir, ".ssh", "id_#{keytype}.pub")
|
||||
end
|
||||
|
||||
file "#{homedir}/.ssh/id_#{keytype}.pub" do
|
||||
owner username
|
||||
group groupname
|
||||
mode '644'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -10,7 +10,7 @@ recipe "deps", "Installs nailgun deps"
|
|||
|
||||
supports "ubuntu" # It should work on debian too, but not tested yet
|
||||
|
||||
%w{celery redis2 django python}.each do |cookbook|
|
||||
%w{celery redis2 django python cobbler}.each do |cookbook|
|
||||
depends cookbook
|
||||
end
|
||||
|
||||
|
|
|
@ -53,22 +53,14 @@ template "#{node.nailgun.root}/nailgun/extrasettings.py" do
|
|||
:level => "DEBUG",
|
||||
:filename => "/var/log/nailgun/nailgun.log",
|
||||
:sshkey => "#{node.nailgun.root}/.ssh/id_rsa",
|
||||
:bootstrap_sshkey => "#{node.nailgun.root}/.ssh/bootstrap.rsa",
|
||||
:bootstrap_sshkey => "/root/bootstrap.rsa",
|
||||
:cobbler_address => "localhost",
|
||||
:cobbler_user => "cobbler",
|
||||
:cobbler_password => "cobbler",
|
||||
:cobbler_user => node.cobbler.user,
|
||||
:cobbler_password => node.cobbler.password,
|
||||
:cobbler_profile => "centos-6.2-x86_64"
|
||||
)
|
||||
end
|
||||
|
||||
# FIXME
|
||||
# IT NEEDED TO BE CREATED DURING ssh-keygen
|
||||
directory "#{node.nailgun.root}/.ssh" do
|
||||
owner node.nailgun.user
|
||||
group node.nailgun.group
|
||||
mode "700"
|
||||
end
|
||||
|
||||
ssh_keygen "Nailgun ssh-keygen" do
|
||||
homedir node.nailgun.root
|
||||
username node.nailgun.user
|
||||
|
@ -76,18 +68,8 @@ ssh_keygen "Nailgun ssh-keygen" do
|
|||
keytype 'rsa'
|
||||
end
|
||||
|
||||
ssh_keygen "Root ssh-keygen" do
|
||||
homedir "/root"
|
||||
username "root"
|
||||
groupname "root"
|
||||
keytype 'rsa'
|
||||
end
|
||||
|
||||
# FIXME
|
||||
# IT NEEDED TO BE COPIED FROM FIXED PLACE
|
||||
file "#{node.nailgun.root}/.ssh/bootstrap.rsa" do
|
||||
mode 0600
|
||||
owner node.nailgun.user
|
||||
file "/root/bootstrap.rsa" do
|
||||
mode 0640
|
||||
group node.nailgun.group
|
||||
end
|
||||
|
||||
|
|
|
@ -15,3 +15,4 @@ default[:repo][:gnupgpasswdfile] = '/root/.gnupg/keyphrase'
|
|||
|
||||
default[:repo][:ubuntu][:root] = '/var/lib/mirror/ubuntu'
|
||||
default[:repo][:centos][:root] = '/var/lib/mirror/centos'
|
||||
default[:repo][:gems][:root] = '/var/lib/mirror/gems'
|
||||
|
|
|
@ -13,3 +13,11 @@ Alias /centos <%= node.repo.centos.root %>
|
|||
Order deny,allow
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
Alias /gems <%= node.repo.gems.root %>
|
||||
|
||||
<Directory <%= node.repo.gems.root %>>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
|
Loading…
Reference in New Issue