1
1
#! /usr/bin/env bash
2
2
breed=$1
3
-
3
+ if [ $USER == ' root' ]; then
4
+ sudo_command=' '
5
+ else
6
+ sudo_command=' sudo '
7
+ fi
4
8
which tput > /dev/null 2>&1
5
9
if [ " x${?} " == " x0" ]; then
6
10
SETCOLOR_NORMAL=$( tput sgr0)
27
31
28
32
setup_redhat () {
29
33
echo_title " Uninstalling existing Puppet"
30
- yum erase -y puppet-agent puppet puppetlabs-release puppetlabs-release-pc1 > /dev/null 2>&1
34
+ $sudo_command yum erase -y puppet-agent puppet puppetlabs-release puppetlabs-release-pc1 > /dev/null 2>&1
31
35
32
36
echo_title " Adding repo for Puppet 5"
33
- rpm -ivh https://yum.puppetlabs.com/puppet5/puppet5-release-el-$1 .noarch.rpm > /dev/null 2>&1
37
+ $sudo_command rpm -ivh https://yum.puppetlabs.com/puppet5/puppet5-release-el-$1 .noarch.rpm > /dev/null 2>&1
34
38
35
39
sleep 2
36
40
echo_title " Installing Puppet"
37
- yum install -y puppet-agent > /dev/null 2>&1
41
+ $sudo_command yum install -y puppet-agent > /dev/null 2>&1
38
42
}
39
43
40
44
setup_fedora () {
@@ -44,44 +48,44 @@ setup_fedora() {
44
48
release=' 26'
45
49
fi
46
50
echo_title " Uninstalling existing Puppet"
47
- yum erase -y puppet-agent puppet puppetlabs-release puppetlabs-release-pc1 > /dev/null 2>&1
51
+ $sudo_command yum erase -y puppet-agent puppet puppetlabs-release puppetlabs-release-pc1 > /dev/null 2>&1
48
52
49
53
echo_title " Adding repo for Puppet 5"
50
- rpm -ivh https://yum.puppetlabs.com/puppet5/puppet5-release-fedora-${release} .noarch.rpm
54
+ $sudo_command rpm -ivh https://yum.puppetlabs.com/puppet5/puppet5-release-fedora-${release} .noarch.rpm
51
55
52
56
sleep 2
53
57
echo_title " Installing Puppet"
54
- yum install -y puppet-agent
58
+ $sudo_command yum install -y puppet-agent
55
59
}
56
60
57
61
setup_amazon () {
58
62
echo_title " Uninstalling existing Puppet"
59
- yum erase -y puppet-agent puppet puppetlabs-release puppetlabs-release-pc1 > /dev/null 2>&1
63
+ $sudo_command yum erase -y puppet-agent puppet puppetlabs-release puppetlabs-release-pc1 > /dev/null 2>&1
60
64
61
65
echo_title " Adding repo for Puppet 4"
62
- rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm > /dev/null 2>&1
63
- yum-config-manager --enable epel
64
- yum-config-manager --setopt=" puppetlabs-pc1.priority=1" --save
66
+ $sudo_command rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm > /dev/null 2>&1
67
+ $sudo_command yum-config-manager --enable epel
68
+ $sudo_command yum-config-manager --setopt=" puppetlabs-pc1.priority=1" --save
65
69
66
70
sleep 2
67
71
echo_title " Installing Puppet"
68
- yum install -y puppet-agent > /dev/null 2>&1
72
+ $sudo_command yum install -y puppet-agent > /dev/null 2>&1
69
73
}
70
74
71
75
setup_suse () {
72
76
echo_title " Uninstalling existing Puppet"
73
- zypper remove -y puppet > /dev/null 2>&1
74
- zypper remove -y puppet-agent > /dev/null 2>&1
75
- zypper remove -y puppetlabs-release > /dev/null 2>&1
76
- zypper remove -y puppetlabs-release-pc1 > /dev/null 2>&1
77
+ $sudo_command zypper remove -y puppet > /dev/null 2>&1
78
+ $sudo_command zypper remove -y puppet-agent > /dev/null 2>&1
79
+ $sudo_command zypper remove -y puppetlabs-release > /dev/null 2>&1
80
+ $sudo_command zypper remove -y puppetlabs-release-pc1 > /dev/null 2>&1
77
81
78
82
echo_title " Adding repo for Puppet 5"
79
- wget https://yum.puppetlabs.com/puppet5/puppet5-release-sles-$1 .noarch.rpm 2>&1
80
- rpm -ivh puppet5-release-sles-$1 .noarch.rpm 2>&1
83
+ $sudo_command wget https://yum.puppetlabs.com/puppet5/puppet5-release-sles-$1 .noarch.rpm 2>&1
84
+ $sudo_command rpm -ivh puppet5-release-sles-$1 .noarch.rpm 2>&1
81
85
82
86
sleep 2
83
87
echo_title " Installing Puppet"
84
- zypper --no-gpg-checks --non-interactive install puppet-agent
88
+ $sudo_command zypper --no-gpg-checks --non-interactive install puppet-agent
85
89
}
86
90
87
91
setup_apt () {
@@ -94,43 +98,42 @@ setup_apt() {
94
98
12.04) codename=precise ;;
95
99
14.04) codename=trusty ;;
96
100
16.04) codename=xenial ;;
97
- 18.04) codename=stretch ;; # Temporary fix, waiting for official repos
98
101
* ) echo " Release not supported" ;;
99
102
esac
100
103
101
104
echo_title " Adding repo for Puppet 5"
102
- wget -q " http://apt.puppetlabs.com/puppet5-release-${codename} .deb" > /dev/null
103
- dpkg -i " puppet5-release-${codename} .deb" > /dev/null
105
+ $sudo_command wget -q " http://apt.puppetlabs.com/puppet5-release-${codename} .deb" > /dev/null
106
+ $sudo_command dpkg -i " puppet5-release-${codename} .deb" > /dev/null
104
107
105
108
echo_title " Running apt-get update"
106
- apt-get update > /dev/null 2>&1
109
+ $sudo_command apt-get update > /dev/null 2>&1
107
110
108
111
echo_title " Installing Puppet and its dependencies"
109
- apt-get install -y puppet-agent -y > /dev/null
110
- apt-get install -y apt-transport-https -y > /dev/null
112
+ $sudo_command apt-get install -y puppet-agent -y > /dev/null
113
+ $sudo_command apt-get install -y apt-transport-https -y > /dev/null
111
114
}
112
115
setup_alpine () {
113
116
echo " ## Adding repo for Ruby to /etc/apk/repositories"
114
117
echo http://dl-4.alpinelinux.org/alpine/edge/testing/ >> /etc/apk/repositories
115
118
echo " ## Running apk update"
116
- apk update
119
+ $sudo_command apk update
117
120
118
121
echo " ## Installing Puppet and its dependencies"
119
- apk add shadow ruby less bash
120
- gem install puppet --no-rdoc -no-ri
122
+ $sudo_command apk add shadow ruby less bash
123
+ $sudo_command gem install puppet --no-rdoc -no-ri
121
124
}
122
125
setup_solaris () {
123
126
echo_title " Not yet supported"
124
127
}
125
128
setup_darwin () {
126
129
majver=$( sw_vers -productVersion | cut -d ' .' -f 1-2)
127
- echo_title " Downloading package for version ${majver} "
128
- curl -s -o puppet-agent.dmg " https://downloads.puppetlabs.com/mac/puppet5/${majver} /x86_64/puppet-agent-5.3.2-1.osx ${majver} .dmg"
130
+ echo_title " Downloading package for MacOS version ${majver} "
131
+ curl -s -o puppet-agent.dmg " https://downloads.puppetlabs.com/mac/puppet5/${majver} /x86_64/puppet-agent-latest .dmg"
129
132
130
133
echo_title " Installing Puppet Agent"
131
134
hdiutil mount puppet-agent.dmg
132
135
package=$( find /Volumes/puppet-agent* | grep pkg)
133
- installer -pkg $package -target /
136
+ $sudo_command installer -pkg $package -target /
134
137
hdiutil unmount /Volumes/puppet-agent*
135
138
}
136
139
setup_bsd () {
@@ -205,11 +208,13 @@ os_detect() {
205
208
esac
206
209
}
207
210
211
+ echo " Going to install Puppet (and eventually cleanup old version)"
212
+ echo " If you are not root some commands will be run via sudo"
208
213
if [ " x$breed " != " x" ]; then
209
214
setup_$breed
210
215
else
211
216
os_detect
212
217
fi
213
- [ -e /usr/bin/puppet ] || ln -fs /opt/puppetlabs/puppet/bin/puppet /usr/bin/puppet
214
- [ -e /usr/bin/facter ] || ln -fs /opt/puppetlabs/puppet/bin/facter /usr/bin/facter
218
+ [ -e /usr/bin/puppet ] || $sudo_command ln -fs /opt/puppetlabs/puppet/bin/puppet /usr/bin/puppet
219
+ [ -e /usr/bin/facter ] || $sudo_command ln -fs /opt/puppetlabs/puppet/bin/facter /usr/bin/facter
215
220
0 commit comments