Merge "Switch to Ubuntu 14.04 LTS"

This commit is contained in:
Jenkins 2015-03-04 22:48:08 +00:00 committed by Gerrit Code Review
commit 9b1948b210
10 changed files with 337 additions and 13 deletions

View File

@ -23,7 +23,7 @@ class apt::params {
} }
'ubuntu': { 'ubuntu': {
case $::lsbdistcodename { case $::lsbdistcodename {
'hardy','maverick','natty','oneiric','precise': { 'hardy','maverick','natty','oneiric','precise','trusty': {
$backports_location = 'http://us.archive.ubuntu.com/ubuntu' $backports_location = 'http://us.archive.ubuntu.com/ubuntu'
$ppa_options = '-y' $ppa_options = '-y'
} }

View File

@ -20,9 +20,9 @@ class ceph::apt (
location => "http://ceph.com/debian-${release}/", location => "http://ceph.com/debian-${release}/",
} }
apt::source { 'radosgw-apache2': apt::source { 'radosgw-apache2':
location => 'http://gitbuilder.ceph.com/apache2-deb-precise-x86_64-basic/ref/master/', location => 'http://gitbuilder.ceph.com/apache2-deb-trusty-x86_64-basic/ref/master/',
} }
apt::source { 'radosgw-fastcgi': apt::source { 'radosgw-fastcgi':
location => 'http://gitbuilder.ceph.com/libapache-mod-fastcgi-deb-precise-x86_64-basic/ref/master/', location => 'http://gitbuilder.ceph.com/libapache-mod-fastcgi-deb-trusty-x86_64-basic/ref/master/',
} }
} }

View File

@ -41,7 +41,7 @@ Puppet::Type.newtype(:cobbler_distro) do
newparam(:osversion) do newparam(:osversion) do
desc "OS Version" desc "OS Version"
newvalues(/^(rhel6|rhel5|precise|natty|squeeze|stable|other)$/) newvalues(/^(rhel6|rhel5|trusty|precise|natty|squeeze|stable|other)$/)
end end
newparam(:name, :namevar => true) do newparam(:name, :namevar => true) do

View File

@ -0,0 +1,97 @@
# Copyright 2013 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
class cobbler::distro::ubuntu_1404_x86_64(
$http_iso = 'http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/mini.iso',
$ks_url = 'http://us.archive.ubuntu.com/ubuntu',
){
Exec {path => '/usr/bin:/bin:/usr/sbin:/sbin'}
case $::operatingsystem {
/(?i)(centos|redhat)/: {
$ks_mirror = '/var/www/cobbler/ks_mirror'
}
/(?i)(debian|ubuntu)/: {
$ks_mirror = '/usr/share/cobbler/webroot/cobbler/ks_mirror'
}
}
# mini
$iso_name = extension_basename($http_iso, 'true')
# mini.iso
$iso_basename = extension_basename($http_iso)
# /var/www/cobbler/ks_mirror/ubuntu-14.04-x86_64-mini.iso
$iso = "${ks_mirror}/ubuntu-14.04-x86_64-${iso_basename}"
# /var/www/cobbler/ks_mirror/ubuntu-14.04-x86_64-mini
$iso_mnt = "${ks_mirror}/ubuntu-14.04-x86_64-${iso_name}"
# /var/www/cobbler/links/ubuntu-14.04-x86_64-mini
$iso_link = "/var/www/cobbler/links/${iso_name}"
if $ks_url == 'cobbler' {
$tree_host = "@@server@@"
$tree_url = "/cblr/links/${iso_name}"
}
else {
$tree_host = inline_template("<%= @ks_url.split('http://')[1].split('/')[0] %>")
$tree_url = inline_template("/<%= @ks_url.split('http://')[1].split('/')[1 .. -1].join('/') %>")
}
file { $iso_mnt:
ensure => directory,
}
if $http_iso =~ /^http:\/\/.+/ {
# HERE IS ASSUMED THAT wget PACKAGE INSTALLED AS WE NEED IT
# TO DOWNLOAD CENTOS ISO IMAGE
exec { "get ${http_iso}":
command => "wget -q -O- ${http_iso} > ${iso}",
timeout => 0,
onlyif => "test ! -s ${iso}",
}
}
elsif $http_iso =~ /^file:\/\/.+/ {
$http_iso_path = split($http_iso, 'file://')
exec { "get ${http_iso}":
command => "cp ${http_iso_path[1]} ${iso}",
onlyif => "test ! -s ${iso}",
}
}
mount { $iso_mnt:
ensure => mounted,
device => $iso,
options => 'loop',
fstype => 'iso9660',
require => [Exec["get ${http_iso}"], File[$iso_mnt]],
}
file { $iso_link:
ensure => link,
target => $iso_mnt,
}
cobbler_distro { "ubuntu_1404_x86_64":
kernel => "${iso_mnt}/linux",
initrd => "${iso_mnt}/initrd.gz",
arch => 'x86_64',
breed => 'ubuntu',
osversion => 'trusty',
ksmeta => "tree_host=${tree_host} tree_url=${tree_url}",
require => Mount[$iso_mnt],
}
}

View File

@ -0,0 +1,66 @@
# Copyright 2013 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#
#
# This class is intended to make cobbler profile ubuntu_1404_x86_64.
#
# [distro] The name of cobbler distro to bind profile to.
#
# [ks_system_timezone] System timezone on installed system.
#
# [ks_encrypted_root_password] Hash of the root password on installed system.
class cobbler::profile::ubuntu_1404_x86_64(
$distro = "ubuntu_1404_x86_64",
$ks_repo = [
{
"name" => "Mirantis",
"url" => "http://download.mirantis.com/precise-grizzly-fuel-3.2/",
"key" => "http://download.mirantis.com/precise-grizzly-fuel-3.2/Mirantis.key",
"release" => "trusty",
"repos" => "main",
},
],
$ks_system_timezone = "America/Los_Angeles",
# default password is 'r00tme'
$ks_encrypted_root_password = "\$6\$tCD3X7ji\$1urw6qEMDkVxOkD33b4TpQAjRiCeDZx0jmgMhDYhfB9KuGfqO9OcMaKyUxnGGWslEDQ4HxTw7vcAMP85NxQe61",
$kopts = "priority=critical locale=en_US biosdevname=0 netcfg/choose_interface=auto auto=true netcfg/dhcp_timeout=120 netcfg/link_detection_timeout=20",
){
case $operatingsystem {
/(?i)(ubuntu|debian|centos|redhat)$/: {
$ks_dir = "/var/lib/cobbler/kickstarts"
}
}
file { "${ks_dir}/ubuntu_1404_x86_64.preseed":
content => template("cobbler/preseed/ubuntu-1404.preseed.erb"),
owner => root,
group => root,
mode => 0644,
} ->
cobbler_profile { "ubuntu_1404_x86_64":
kickstart => "${ks_dir}/ubuntu_1404_x86_64.preseed",
kopts => $kopts,
distro => $distro,
ksmeta => "",
menu => true,
}
}

View File

@ -0,0 +1,161 @@
d-i debian-installer/locale string en_US.UTF-8
d-i debian-installer/splash boolean false
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
d-i console-setup/variantcode string
# !!!! do not use netcfg/enable option because netcfg segfaults
# d-i netcfg/enable boolean false
d-i netcfg/choose_interface select auto
# by default we use dhcp but it is possible to set network
# configuration via kernel parameters
d-i netcfg/dhcp_timeout string 30
d-i netcfg/dhcp_failed note
d-i netcfg/dhcp_options select Configure network manually
# these lines must be added via system kopts
# d-i netcfg/get_hostname string nailgun
# d-i netcfg/get_domain string example.com
d-i hw-detect/load_firmware boolean true
d-i clock-setup/utc boolean true
d-i clock-setup/ntp boolean false
d-i time/zone string <%= @ks_system_timezone %>
$SNIPPET('ubuntu_network_console_and_syslog')
$SNIPPET('ubuntu_partition')
d-i base-installer/kernel/image string linux-image-generic-lts-trusty
##########
# REPOS
##########
d-i mirror/protocol string http
d-i mirror/country string manual
d-i mirror/http/hostname string @@server@@:8080
d-i mirror/http/directory string /ubuntu/x86_64
d-i mirror/http/proxy string
d-i mirror/suite string trusty
# Suite to use for loading installer components (optional).
d-i mirror/udeb/suite string trusty
# Components to use for loading installer components (optional).
d-i mirror/udeb/components multiselect main, restricted
# Retry failed repo
d-i apt-setup/mirror/error select Retry
# Downloading a file failed
# d-i apt-setup/use_mirror select Retry
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/use_mirror boolean true
d-i apt-setup/security_host 127.0.0.1
d-i debian-installer/allow_unauthenticated boolean true
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/layoutcode string us
d-i keyboard-configuration/modelcode string SKIP
#if $varExists('repo_metadata')
# Additional repositories, local[0-9] available
#set counter_x = 0
#set repo_list = dict(item.split("=") for item in $repo_metadata.split(","))
#for $repo_name, $repo_url in $repo_list.items()
d-i apt-setup/local$counter_x/repository string deb $repo_url
d-i apt-setup/local$counter_x/comment string $repo_name
#set counter_x = $counter_x + 1
#end for
#end if
##########
# USERS
##########
# Allow root login
d-i passwd/root-login boolean true
d-i passwd/root-password-crypted password <%= @ks_encrypted_root_password %>
d-i passwd/make-user boolean false
############
# PACKAGES
############
tasksel tasksel/first multiselect standard
debconf debconf/frontend select Noninteractive
# d-i pkgsel/include string openssh-server debconf-utils
$SNIPPET('ubuntu_packages')
d-i pkgsel/language-packs multiselect en
d-i pkgsel/update-policy select none
d-i pkgsel/upgrade select none
d-i pkgsel/updatedb boolean true
d-i finish-install/keep-consoles boolean false
d-i finish-install/reboot_in_progress note
d-i cdrom-detect/eject boolean true
d-i debian-installer/exit/halt boolean false
d-i debian-installer/exit/poweroff boolean false
################
# LATE COMMANDS
################
# TODO:
# add puppet and mcollective configuration
# add network configuration
d-i preseed/late_command string true && \
$SNIPPET('ubuntu_partition_late')
$SNIPPET('ubuntu_disable_pxe') && \
$SNIPPET('ubuntu_network') && \
echo 'supersede routers 0;' > /target/etc/dhcp/dhclient.conf && \
$SNIPPET('cinder_create_lvm_group__ubuntu') && \
$SNIPPET('ubuntu_puppet_config') && \
$SNIPPET('ubuntu_mcollective_config') && \
$SNIPPET('ntp_to_masternode_ubuntu')
echo "nf_conntrack_ipv4" >> /target/etc/modules && \
echo "nf_conntrack_ipv6" >> /target/etc/modules && \
echo "net.nf_conntrack_max=1048576" >> /target/etc/sysctl.conf && \
mkdir -p /target/etc/nailgun-agent && \
#set nailgun_agent_conf = '/target/etc/nailgun-agent/config.yaml'
echo "---" > $nailgun_agent_conf && \
echo "url: '<%= scope.lookupvar('nailgun::cobbler::nailgun_api_url') %>'" >> $nailgun_agent_conf && \
echo target > /target/etc/nailgun_systemtype && \
echo 'APT::Get::AllowUnauthenticated 1;' > /target/etc/apt/apt.conf.d/02mirantis-allow-unsigned && \
# REPOSITORIES FROM Nailgun
#if $varExists('repo_metadata')
echo "" /target/etc/apt/sources.list && \
#set repo_list = dict(item.split("=") for item in $repo_metadata.split(","))
#for $repo_name, $repo_url in $repo_list.items()
echo 'deb $repo_url' >> /target/etc/apt/sources.list && \
#end for
#else
echo 'deb http://@@server@@:8080/ubuntu/x86_64 trusty main' > /target/etc/apt/sources.list && \
#end if
$SNIPPET('ubuntu_authorized_keys')
sed -i -e "/^\s*GSSAPICleanupCredentials yes/d" -e "/^\s*GSSAPIAuthentication yes/d" -e "s/.*PasswordAuthentication\ .*/PasswordAuthentication\ no/g" -e "/UseDNS/d" /target/etc/ssh/sshd_config && \
echo "UseDNS no" >> /target/etc/ssh/sshd_config && \
in-target apt-get -y install linux-headers-generic-lts-trusty && \
in-target apt-get update; \
in-target apt-get upgrade -y; \
$SNIPPET('ubuntu_blacklist_i2c_piix4')
$SNIPPET('ubuntu_static_net')
$SNIPPET('ofed_install_with_sriov')
# Rsyslogd should send all messages to master node
$SNIPPET('target_logs_to_master_ubuntu')
true

View File

@ -1,4 +1,4 @@
#set $pkgsel_packages = ["acl", "openssh-server", "debconf-utils", "ntp", "ntpdate", "ruby-ipaddress", "ruby-netaddr", "ruby-openstack", "libaugeas-ruby", "libstomp-ruby1.8", "libshadow-ruby1.8", "libjson-ruby1.8", "vim", "vlan", "curl", "anacron", "python-amqp", "nailgun-agent", "nailgun-mcagents", "lvm2", "nailgun-net-check", "puppet", "telnet", "gdisk", "daemonize", "rsync", "virt-what" ] #set $pkgsel_packages = ["acl", "openssh-server", "debconf-utils", "ntp", "ntpdate", "ruby-ipaddress", "ruby-netaddr", "ruby-openstack", "ruby-augeas", "ruby-stomp", "ruby-shadow", "ruby-json", "vim", "vlan", "curl", "anacron", "python-amqp", "nailgun-agent", "nailgun-mcagents", "lvm2", "nailgun-net-check", "puppet", "telnet", "gdisk", "daemonize", "rsync", "virt-what" ]
#if $str($getVar('mco_auto_setup','')) == "1" #if $str($getVar('mco_auto_setup','')) == "1"
#silent $pkgsel_packages.append("ruby-stomp") #silent $pkgsel_packages.append("ruby-stomp")

View File

@ -115,19 +115,19 @@ class nailgun::cobbler(
} }
file { "/var/lib/cobbler/kickstarts/ubuntu-amd64.preseed": file { "/var/lib/cobbler/kickstarts/ubuntu-amd64.preseed":
content => template("cobbler/preseed/ubuntu-1204.preseed.erb"), content => template("cobbler/preseed/ubuntu-1404.preseed.erb"),
owner => root, owner => root,
group => root, group => root,
mode => 0644, mode => 0644,
require => Class["::cobbler::server"], require => Class["::cobbler::server"],
} -> } ->
cobbler_distro { "ubuntu_1204_x86_64": cobbler_distro { "ubuntu_1404_x86_64":
kernel => "${repo_root}/ubuntu/x86_64/images/linux", kernel => "${repo_root}/ubuntu/x86_64/images/linux",
initrd => "${repo_root}/ubuntu/x86_64/images/initrd.gz", initrd => "${repo_root}/ubuntu/x86_64/images/initrd.gz",
arch => "x86_64", arch => "x86_64",
breed => "ubuntu", breed => "ubuntu",
osversion => "precise", osversion => "trusty",
ksmeta => "", ksmeta => "",
require => Class["::cobbler::server"], require => Class["::cobbler::server"],
} }
@ -143,14 +143,14 @@ class nailgun::cobbler(
require => Cobbler_distro["centos-x86_64"], require => Cobbler_distro["centos-x86_64"],
} }
cobbler_profile { "ubuntu_1204_x86_64": cobbler_profile { "ubuntu_1404_x86_64":
kickstart => "/var/lib/cobbler/kickstarts/ubuntu-amd64.preseed", kickstart => "/var/lib/cobbler/kickstarts/ubuntu-amd64.preseed",
kopts => "netcfg/choose_interface=eth0 netcfg/dhcp_timeout=120 netcfg/link_detection_timeout=20", kopts => "netcfg/choose_interface=eth0 netcfg/dhcp_timeout=120 netcfg/link_detection_timeout=20",
distro => "ubuntu_1204_x86_64", distro => "ubuntu_1404_x86_64",
ksmeta => "", ksmeta => "",
menu => true, menu => true,
server => $real_server, server => $real_server,
require => Cobbler_distro["ubuntu_1204_x86_64"], require => Cobbler_distro["ubuntu_1404_x86_64"],
} }

View File

@ -141,7 +141,7 @@ The ``cobbler_common`` section applies to all machines::
# for Centos # for Centos
profile: "centos64_x86_64" profile: "centos64_x86_64"
# for Ubuntu # for Ubuntu
# profile: "ubuntu_1204_x86_64" # profile: "ubuntu_1404_x86_64"
Fuel can install CentOS or Ubuntu on your servers, or you can add a profile of your own. By default, ``config.yaml`` uses CentOS. :: Fuel can install CentOS or Ubuntu on your servers, or you can add a profile of your own. By default, ``config.yaml`` uses CentOS. ::

View File

@ -116,7 +116,7 @@ common:
# for Centos # for Centos
profile: "centos64_x86_64" profile: "centos64_x86_64"
# for Ubuntu # for Ubuntu
# profile: "ubuntu_1204_x86_64" # profile: "ubuntu_1404_x86_64"
netboot-enabled: "1" netboot-enabled: "1"
# for Ubuntu # for Ubuntu
# ksmeta: "puppet_version=2.7.19-1puppetlabs2 \ # ksmeta: "puppet_version=2.7.19-1puppetlabs2 \