blob: d0bba64526179482d4240f82e9bbf7793ec7aff7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
#!/usr/bin/env bash
#bootstrap script for VM OPNFV nodes
#author: Tim Rozet (trozet@redhat.com)
#
#Uses Vagrant and VirtualBox
#VagrantFile uses vm_nodes_provision.sh which configures linux on nodes
#Depends on Foreman being up to be able to register and apply puppet
#
#Pre-requisties:
#Target system should be Centos7 Vagrant VM
##VARS
reset=`tput sgr0`
blue=`tput setaf 4`
red=`tput setaf 1`
green=`tput setaf 2`
host_name=REPLACE
dns_server=REPLACE
##END VARS
##set hostname
echo "${blue} Setting Hostname ${reset}"
hostnamectl set-hostname $host_name
##remove NAT DNS
echo "${blue} Removing DNS server on first interface ${reset}"
if ! grep 'PEERDNS=no' /etc/sysconfig/network-scripts/ifcfg-enp0s3; then
echo "PEERDNS=no" >> /etc/sysconfig/network-scripts/ifcfg-enp0s3
systemctl restart NetworkManager
fi
if ! ping www.google.com -c 5; then
echo "${red} No internet connection, check your route and DNS setup ${reset}"
exit 1
fi
# Install EPEL repo for access to many other yum repos
# Major version is pinned to force some consistency for Arno
yum install -y epel-release-7*
# Update device-mapper-libs, needed for libvirtd on compute nodes
# Major version is pinned to force some consistency for Arno
if ! yum -y upgrade device-mapper-libs-1*; then
echo "${red} WARN: Unable to upgrade device-mapper-libs...nova-compute may not function ${reset}"
fi
# Install other required packages
# Major version is pinned to force some consistency for Arno
echo "${blue} Installing Puppet ${reset}"
if ! yum install -y puppet-3*; then
printf '%s\n' 'vm_nodes_provision.sh: failed to install required packages' >&2
exit 1
fi
echo "${blue} Configuring puppet ${reset}"
cat > /etc/puppet/puppet.conf << EOF
[main]
vardir = /var/lib/puppet
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = \$vardir/ssl
[agent]
pluginsync = true
report = true
ignoreschedules = true
daemon = false
ca_server = foreman-server.opnfv.com
certname = $host_name
environment = production
server = foreman-server.opnfv.com
runinterval = 600
EOF
# Setup puppet to run on system reboot
/sbin/chkconfig --level 345 puppet on
/usr/bin/puppet agent --config /etc/puppet/puppet.conf -o --tags no_such_tag --server foreman-server.opnfv.com --no-daemonize
sync
# Inform the build system that we are done.
echo "Informing Foreman that we are built"
wget -q -O /dev/null --no-check-certificate http://foreman-server.opnfv.com:80/unattended/built
echo "Starting puppet"
systemctl start puppet
|