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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208 | #cloud-config
apt_mirror: ""
bootcmd:
- install -D -m 644 /dev/null '/etc/network/interfaces-juju'
- |-
printf '%s\n' '
auto eth0 lo
iface lo inet loopback
dns-nameservers 192.168.100.2
dns-search maas
iface eth0 inet static
address 192.168.100.161/24
gateway 192.168.100.1
' > '/etc/network/interfaces-juju'
- printf '%s\n' 'Acquire::http::Proxy "http://192.168.100.1:8000";' > /etc/apt/apt.conf.d/95-juju-proxy-settings
hostname: juju-04d436-0-kvm-0
output:
all: '| tee -a /var/log/cloud-init-output.log'
package_update: true
package_upgrade: false
packages:
- curl
- cpu-checker
- bridge-utils
- cloud-utils
- tmux
runcmd:
- |-
if [ -f /etc/network/interfaces-juju ]; then
ifdown -a
sleep 1.5
if ifup -a --interfaces=/etc/network/interfaces-juju; then
cp /etc/network/interfaces /etc/network/interfaces-orig
cp /etc/network/interfaces-juju /etc/network/interfaces
else
ifup -a
fi
fi
- set -xe
- install -D -m 644 /dev/null '/etc/systemd/system/juju-clean-shutdown.service'
- |-
printf '%s\n' '
[Unit]
Description=Stop all network interfaces on shutdown
DefaultDependencies=false
After=final.target
[Service]
Type=oneshot
ExecStart=/sbin/ifdown -a -v --force
StandardOutput=tty
StandardError=tty
[Install]
WantedBy=final.target
' > '/etc/systemd/system/juju-clean-shutdown.service'
- /bin/systemctl enable '/etc/systemd/system/juju-clean-shutdown.service'
- install -D -m 644 /dev/null '/var/lib/juju/nonce.txt'
- printf '%s\n' 'machine-0:e13bdbfe-71a6-4f78-80e5-22fd071d9076' > '/var/lib/juju/nonce.txt'
- test -n "$JUJU_PROGRESS_FD" || (exec {JUJU_PROGRESS_FD}>&2) 2>/dev/null && exec
{JUJU_PROGRESS_FD}>&2 || JUJU_PROGRESS_FD=2
- ([ ! -e /home/ubuntu/.profile ] || grep -q '.juju-proxy' /home/ubuntu/.profile)
|| printf '\n# Added by juju\n[ -f "$HOME/.juju-proxy" ] && . "$HOME/.juju-proxy"\n'
>> /home/ubuntu/.profile
- mkdir -p /var/lib/juju/locks
- (id ubuntu &> /dev/null) && chown ubuntu:ubuntu /var/lib/juju/locks
- mkdir -p /var/log/juju
- chown syslog:adm /var/log/juju
- bin='/var/lib/juju/tools/2.2-alpha1.1-xenial-amd64'
- mkdir -p $bin
- echo 'Fetching Juju agent version 2.2-alpha1.1 for amd64' >&$JUJU_PROGRESS_FD
- |2-
n=1
while true; do
printf "Attempt $n to download tools from %s...\n" 'https://192.168.100.158:17070/model/c47a5244-7fd3-43ee-8461-7a484d04d436/tools/2.2-alpha1.1-xenial-amd64'
curl -sSfw 'tools from %{url_effective} downloaded: HTTP %{http_code}; time %{time_total}s; size %{size_download} bytes; speed %{speed_download} bytes/s ' --connect-timeout 20 --noproxy "*" --insecure -o $bin/tools.tar.gz 'https://192.168.100.158:17070/model/c47a5244-7fd3-43ee-8461-7a484d04d436/tools/2.2-alpha1.1-xenial-amd64' && echo "Tools downloaded successfully." && break
echo "Download failed, retrying in 15s"
sleep 15
n=$((n+1))
done
- sha256sum $bin/tools.tar.gz > $bin/juju2.2-alpha1.1-xenial-amd64.sha256
- grep 'ed31091f85aea64687c7489f09ba9520e7094a3258e5197d0f3b614c792b0f8d' $bin/juju2.2-alpha1.1-xenial-amd64.sha256
|| (echo "Tools checksum mismatch"; exit 1)
- tar zxf $bin/tools.tar.gz -C $bin
- printf %s '{"version":"2.2-alpha1.1-xenial-amd64","url":"https://192.168.100.158:17070/model/c47a5244-7fd3-43ee-8461-7a484d04d436/tools/2.2-alpha1.1-xenial-amd64","sha256":"ed31091f85aea64687c7489f09ba9520e7094a3258e5197d0f3b614c792b0f8d","size":23486349}'
> $bin/downloaded-tools.txt
- mkdir -p '/var/lib/juju/agents/machine-0-kvm-0'
- |-
cat > '/var/lib/juju/agents/machine-0-kvm-0/agent.conf' << 'EOF'
# format 2.0
tag: machine-0-kvm-0
datadir: /var/lib/juju
logdir: /var/log/juju
metricsspooldir: /var/lib/juju/metricspool
nonce: machine-0:e13bdbfe-71a6-4f78-80e5-22fd071d9076
jobs:
- JobHostUnits
upgradedToVersion: 2.2-alpha1.1
cacert: |
-----BEGIN CERTIFICATE-----
MIIDrTCCApWgAwIBAgIVAKx50DNbv6hkwiCHNxSVPhrItcRyMA0GCSqGSIb3DQEB
CwUAMG4xDTALBgNVBAoTBGp1anUxLjAsBgNVBAMMJWp1anUtZ2VuZXJhdGVkIENB
IGZvciBtb2RlbCAianVqdS1jYSIxLTArBgNVBAUTJDVhNjQzMzc1LTVlZWMtNDAy
YS04YjE0LWE5OTY2YzVjMWNmZDAeFw0xNzAyMTYyMDQxNDRaFw0yNzAyMjMyMDQx
NDNaMG4xDTALBgNVBAoTBGp1anUxLjAsBgNVBAMMJWp1anUtZ2VuZXJhdGVkIENB
IGZvciBtb2RlbCAianVqdS1jYSIxLTArBgNVBAUTJDVhNjQzMzc1LTVlZWMtNDAy
YS04YjE0LWE5OTY2YzVjMWNmZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAMF5X16X0yXSE1mgzOKG8HlBstO1QHhj7DkUQbjwiK//YMIOaMdkmup1gFBl
xPpU4YBHLjCkO5K5lUYYOxnHvkNg5FtoJif7f1l3xab/NxJ9yr9SqmBTQI+/apxR
kwC2FM0J5WXN1cNvIiWlIS/PwTALAWkDjKvUHoIkrPIBV1JX8NOenMj3QAau4XrS
TYJzVkgqciXoYtFh53Tiz1t/KBFHwKMn6VRdtt31mcHiEUhrA/yvaxvga6LfIhfH
F/Oir34CtUa8wPTR7sTeu0uu8400Y0atq9KOHOaxmole6E1fZTLQONdCE2QR54Xg
Pg4+DANaaGmuuXQstMm7Z9Ha4+kCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgKkMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOt2eHrEsxuLkX3h9eWPwLIqCT1uMA0G
CSqGSIb3DQEBCwUAA4IBAQBsJydgOg4/JbRdX2pNSE+HsePO1ppLFxyW2Toq1Qaq
H/aJbeDFnVgFtw2kU0wbpXYQD36iph73FeZ8z/JsOyZFfah7BVu/PxKFop8IsF2s
nneNYscWNyPzoh+/qsJVCzFSZtFZeN3mnz2O4Aqc5WF91fyagTOeWHj1r0OHLW9Z
fynWej2l8/BdznZ+lsD2mnX3BxdKU/nI33iS39+Ed8GkijOftJaWPNsaTw8Qqis4
mr9ni99tpw09kP2VYbL6LC7DmuY2nt851p0GdPXr8bmfxZRzYnLDFWlwLAN7058w
Ue7f7yizsnV+cTQ9w6DAcgIAAFm7U8NKh264p3Uq9sT0
-----END CERTIFICATE-----
controller: controller-a94999b5-c1d3-4e76-8727-e8a26c2aa024
model: model-c47a5244-7fd3-43ee-8461-7a484d04d436
apiaddresses:
- 192.168.100.158:17070
oldpassword: FPs1uI9juMdpGO+KccqasI3j
values:
AGENT_SERVICE_NAME: jujud-machine-0-kvm-0
CONTAINER_TYPE: kvm
PROVIDER_TYPE: maas
mongoversion: "0.0"
EOF
- chmod 0600 '/var/lib/juju/agents/machine-0-kvm-0/agent.conf'
- ln -s 2.2-alpha1.1-xenial-amd64 '/var/lib/juju/tools/machine-0-kvm-0'
- echo 'Starting Juju machine agent (service jujud-machine-0-kvm-0)' >&$JUJU_PROGRESS_FD
- mkdir -p '/var/lib/juju/init/jujud-machine-0-kvm-0'
- |-
cat > '/var/lib/juju/init/jujud-machine-0-kvm-0/exec-start.sh' << 'EOF'
#!/usr/bin/env bash
# Set up logging.
touch '/var/log/juju/machine-0-kvm-0.log'
chown syslog:syslog '/var/log/juju/machine-0-kvm-0.log'
chmod 0600 '/var/log/juju/machine-0-kvm-0.log'
exec >> '/var/log/juju/machine-0-kvm-0.log'
exec 2>&1
# Run the script.
'/var/lib/juju/tools/machine-0-kvm-0/jujud' machine --data-dir '/var/lib/juju' --machine-id 0/kvm/0 --debug
EOF
- chmod 0755 '/var/lib/juju/init/jujud-machine-0-kvm-0/exec-start.sh'
- |-
cat > '/var/lib/juju/init/jujud-machine-0-kvm-0/jujud-machine-0-kvm-0.service' << 'EOF'
[Unit]
Description=juju agent for machine-0-kvm-0
After=syslog.target
After=network.target
After=systemd-user-sessions.service
[Service]
LimitNOFILE=20000
ExecStart=/var/lib/juju/init/jujud-machine-0-kvm-0/exec-start.sh
Restart=on-failure
TimeoutSec=300
[Install]
WantedBy=multi-user.target
EOF
- /bin/systemctl link '/var/lib/juju/init/jujud-machine-0-kvm-0/jujud-machine-0-kvm-0.service'
- /bin/systemctl daemon-reload
- /bin/systemctl enable '/var/lib/juju/init/jujud-machine-0-kvm-0/jujud-machine-0-kvm-0.service'
- /bin/systemctl start jujud-machine-0-kvm-0.service
- rm $bin/tools.tar.gz && rm $bin/juju2.2-alpha1.1-xenial-amd64.sha256
- ifconfig
users:
- groups:
- adm
- audio
- cdrom
- dialout
- dip
- floppy
- netdev
- plugdev
- sudo
- video
lock_passwd: true
name: ubuntu
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLbRu0tFaBWBx186LNW/mhs1OfWBJ9yFzwBqaYR09PW9F61KGpygHb7lxj/O3XSm8T8ouOthY34AuSLR2ZBY4L0gkiPciLh2RlkibHRXZouCVnzaxQne2O/tC99AFq6/uS8hUhSq+lhl+cjD1Urk335rVyc+X1+D0IrTaxMqzDsqfL5PYbzS5SZXNEzzgagESKDIfCy0FnakHaC6+rUfrQ+TRrPRCht191dQY0S4pz9/8nQfZ1coU7j7L7Akx4r0Z7uW7KNgoROQImWHGbJc+R/Sdp4wvBzgWGOuOI23YPYAuinKOrYNCm3ijvnsDSPSnCTCyqad5fe0EuQbSZW/Uz
Juju:juju-client-key
- ssh-dss AAAAB3NzaC1kc3MAAACBANKxXjyNTaxT/wZpUOeLVynlY6sihTN3cO107putN30LFJNCd/B9eydEsqjAOMwW0mHgEJP3IypYdAMCjxblo+BTYtqh8SXewOn5VTdlfz8S0IA1NQODnrXjyMcFXfkKkpBDNeSBO50tLN+Y6ZKfVn51tug1BKqb1Ree+58+5fozAAAAFQDdYM7Z6wsEyFon8VOgHTtFoDqzzwAAAIEA0cpRZ2W8o5S15tnca6d1CmcU9rLOFRw17JXnrEL1hsr8GVnoVatDYu6MwlQKhPDpXMWzsNmX0tPvyK/eDliD4cms6Nc6ZdQoAWwn6vRZkZo6yIhSzmV2YbyNcL797HgUfpMyLBRyKVzkOHm7jSBJnCulLFMZ0h5kT5qtzYQYEPsAAACANIHdLAwd30tZC47QZYVe7W4oMxdhfqZSc+EubPhHiV0cR+hoT4jrbR37/KfDALuNrOAqUlQni8lUF2zBBRkzZGpwePYbBWJ94JZOAmxwvBR7YWjO/ogM50p7Rcc4bRLAXZBno/hr+o+cWm01Rt0s1Y7jDf7+B8f9vjFkDruZpMI=
Juju:reed@koansys.com
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDENnlKe5bLAXgJmlQEgMitbeKSCliFr3+R4BvzdaApaxnVbnYpzSRJ+80zRsia4NZX+hQp8LRuf/aCqdp2jSS47iPnJldHW/AGqElaXNfV2K+1tTAHcMtzjvaahqr21Vk3T8t3qw9MQjBESnEYOLA++BIN6X2BigDlqZE+41CC7y+/lwsvHonsHZ5+VMVlOPjeSNM1ZIflyGzk2TappwU9RiSykk4PRCmPXISForfXIaNqDFog6FyZ4n8OGE/n6PQkkhdt1yFSn2lNz6lR0HwvQlCB3gefaKJPw28MR6WskdWqbZRKTVyZWbAHy3TJrDj/j67O8Ku8AkJSAPAQqIuz
Juju:reed@reedobrien.com
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD1DXnI8Snz7cxrfV0Gv3Udub4CiT8e/SRlePxkWFzOutdCo9Ry6NBUNq9x5pn5zUN5TAw6f9jY+IwijU8No8FYfiRLGUm66xyyJzT19Lt9UVKMc5NqmFZcGgtwQHdPI6DTjyB1QRwKUqEH+Unck9BgQqaVL2eUaQlmAMNRik0u6or3GyBqlcM64Bsv5i6GIJPZsRx1BPfyUoVgoizdUoexRnYVRzChIsMALIj4MzgubU/h7I40+FLwwMONsAUZQEZH/tYimkAJn4EBvXtbOF/hJ0qXfHIRnr61A7TktkkVNiEBZQL7q6IZxLlo9uFr2yGkA2gafvwavbU+32dwPJMZ
Juju:juju-system-key
sudo:
- ALL=(ALL) NOPASSWD:ALL
|