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
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233 | root@frayed-snails:/home/ubuntu# lxc config show juju-machine-0-lxd-0
name: juju-machine-0-lxd-0
profiles:
- juju-machine-0-lxd-0-network
config:
user.boot.autostart: "true"
user.user-data: |
#cloud-config
apt_mirror: ""
bootcmd:
- install -D -m 644 /dev/null '/etc/network/interfaces.d/00-juju.cfg'
- |-
printf '%s\n' '
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
dns-nameservers 172.16.10.2
dns-search maas
pre-up ip address add 172.16.10.111/24 dev eth0 || true
up ip route replace 172.16.10.0/24 dev eth0 || true
down ip route del 172.16.10.0/24 dev eth0 || true
post-down address del 172.16.10.111/24 dev eth0 || true
up ip route replace default via 172.16.10.1 || true
down ip route del default via 172.16.10.1 || true
auto eth1
iface eth1 inet manual
pre-up ip address add 192.168.10.101/24 dev eth1 || true
up ip route replace 192.168.10.0/24 dev eth1 || true
down ip route del 192.168.10.0/24 dev eth1 || true
post-down address del 192.168.10.101/24 dev eth1 || true
auto eth2
iface eth2 inet manual
pre-up ip address add 192.168.11.101/24 dev eth2 || true
up ip route replace 192.168.11.0/24 dev eth2 || true
down ip route del 192.168.11.0/24 dev eth2 || true
post-down address del 192.168.11.101/24 dev eth2 || true
auto eth3
iface eth3 inet manual
pre-up ip address add 192.168.12.101/24 dev eth3 || true
up ip route replace 192.168.12.0/24 dev eth3 || true
down ip route del 192.168.12.0/24 dev eth3 || true
post-down address del 192.168.12.101/24 dev eth3 || true
' > '/etc/network/interfaces.d/00-juju.cfg'
output:
all: '| tee -a /var/log/cloud-init-output.log'
package_update: false
package_upgrade: false
packages:
- curl
- cpu-checker
- bridge-utils
- cloud-utils
- cloud-image-utils
- tmux
runcmd:
- ifup -a || true
- 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:eb7504d1-d8f0-4a35-8c7e-6e9046028b04' > '/var/lib/juju/nonce.txt'
- test -e /proc/self/fd/9 || exec 9>&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.0-beta4.1-xenial-amd64'
- mkdir -p $bin
- 'echo ''Fetching tools: curl -sSfw ''"''"''tools from %{url_effective} downloaded:
HTTP %{http_code}; time %{time_total}s; size %{size_download} bytes; speed %{speed_download}
bytes/s ''"''"'' --noproxy "*" --insecure -o $bin/tools.tar.gz <[https://172.16.10.110:17070/tools/2.0-beta4.1-xenial-amd64]>''
>&9'
- |2-
n=1
while true; do
printf "Attempt $n to download tools from %s...\n" 'https://172.16.10.110:17070/tools/2.0-beta4.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 ' --noproxy "*" --insecure -o $bin/tools.tar.gz 'https://172.16.10.110:17070/tools/2.0-beta4.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.0-beta4.1-xenial-amd64.sha256
- grep '7a2c2dbef4fc7ee74ad70c1befcd92d5f886f1f55a2e17fe40f50cea74c4babb' $bin/juju2.0-beta4.1-xenial-amd64.sha256
|| (echo "Tools checksum mismatch"; exit 1)
- tar zxf $bin/tools.tar.gz -C $bin
- printf %s '{"version":"2.0-beta4.1-xenial-amd64","url":"https://172.16.10.110:17070/model/4742544a-5c30-42bb-8dca-4c0477902ea1/tools/2.0-beta4.1-xenial-amd64","sha256":"7a2c2dbef4fc7ee74ad70c1befcd92d5f886f1f55a2e17fe40f50cea74c4babb","size":19143270}'
> $bin/downloaded-tools.txt
- mkdir -p '/var/lib/juju/agents/machine-0-lxd-0'
- |-
cat > '/var/lib/juju/agents/machine-0-lxd-0/agent.conf' << 'EOF'
# format 1.18
tag: machine-0-lxd-0
datadir: /var/lib/juju
logdir: /var/log/juju
metricsspooldir: /var/lib/juju/metricspool
nonce: machine-0:eb7504d1-d8f0-4a35-8c7e-6e9046028b04
jobs:
- JobHostUnits
upgradedToVersion: 2.0-beta4.1
cacert: |
-----BEGIN CERTIFICATE-----
MIICUzCCAbygAwIBAgIBADANBgkqhkiG9w0BAQsFADA9MQ0wCwYDVQQKEwRqdWp1
MSwwKgYDVQQDDCNqdWp1LWdlbmVyYXRlZCBDQSBmb3IgbW9kZWwgImFkbWluIjAe
Fw0xNjAzMzAxNTQ3NDdaFw0yNjA0MDYxNTQ3NDdaMD0xDTALBgNVBAoTBGp1anUx
LDAqBgNVBAMMI2p1anUtZ2VuZXJhdGVkIENBIGZvciBtb2RlbCAiYWRtaW4iMIGf
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYHbC2/9EUAePvCQ2IUf7W0MAqlTqH
T3HtIMUBrGOQqAiANMMSYVtFmCQU4J2SahzD2L71gQC7QZw8Duj1cVYsA9FJ5O6d
5GeafluWlpNvTbxngUKnvFT8lt9Xf3Fyl7lYtiG69nDe2mI+dZ3ZW3kTiRB88pii
3WpJTMUpbLwH+wIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0TAQH/BAUw
AwEB/zAdBgNVHQ4EFgQUXnZ75c2wabgLLmHsw70ej4eHmeowHwYDVR0jBBgwFoAU
XnZ75c2wabgLLmHsw70ej4eHmeowDQYJKoZIhvcNAQELBQADgYEAHDFXDLbwZkMG
vSqCO1nWHPCUtH558gCi+gQQSXa4K8GkNbCkShcpo70LVyBx1i56HKzK0B4ZueMC
xAbD2/4Hz7xC+8gH9+f7/HuV9+444/0ATYXu+yu0/QZyFyV7mSMjnvk3Wveyunts
LrLuQj2ALe2J830fM+h8dpuLfR6JUI0=
-----END CERTIFICATE-----
stateaddresses:
- 172.16.10.110:37017
model: model-4742544a-5c30-42bb-8dca-4c0477902ea1
apiaddresses:
- 172.16.10.110:17070
oldpassword: XPb9i2WtwuXN9KhJb31pd2m3
values:
AGENT_SERVICE_NAME: jujud-machine-0-lxd-0
CONTAINER_TYPE: lxd
PROVIDER_TYPE: maas
SECURE_CONTROLLER_CONNECTION: "true"
mongoversion: "0.0"
EOF
- chmod 0600 '/var/lib/juju/agents/machine-0-lxd-0/agent.conf'
- ln -s 2.0-beta4.1-xenial-amd64 '/var/lib/juju/tools/machine-0-lxd-0'
- echo 'Starting Juju machine agent (jujud-machine-0-lxd-0)' >&9
- mkdir -p '/var/lib/juju/init/jujud-machine-0-lxd-0'
- |-
cat > '/var/lib/juju/init/jujud-machine-0-lxd-0/exec-start.sh' << 'EOF'
#!/usr/bin/env bash
# Set up logging.
touch '/var/log/juju/machine-0-lxd-0.log'
chown syslog:syslog '/var/log/juju/machine-0-lxd-0.log'
chmod 0600 '/var/log/juju/machine-0-lxd-0.log'
exec >> '/var/log/juju/machine-0-lxd-0.log'
exec 2>&1
# Run the script.
'/var/lib/juju/tools/machine-0-lxd-0/jujud' machine --data-dir '/var/lib/juju' --machine-id 0/lxd/0 --debug
EOF
- chmod 0755 '/var/lib/juju/init/jujud-machine-0-lxd-0/exec-start.sh'
- |-
cat > '/var/lib/juju/init/jujud-machine-0-lxd-0/jujud-machine-0-lxd-0.service' << 'EOF'
[Unit]
Description=juju agent for machine-0-lxd-0
After=syslog.target
After=network.target
After=systemd-user-sessions.service
[Service]
LimitNOFILE=20000
ExecStart=/var/lib/juju/init/jujud-machine-0-lxd-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-lxd-0/jujud-machine-0-lxd-0.service'
- /bin/systemctl daemon-reload
- /bin/systemctl enable '/var/lib/juju/init/jujud-machine-0-lxd-0/jujud-machine-0-lxd-0.service'
- /bin/systemctl start jujud-machine-0-lxd-0.service
- rm $bin/tools.tar.gz && rm $bin/juju2.0-beta4.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 AAAAB3NzaC1yc2EAAAADAQABAAABAQCbNOMJHt2xs6mUYHFZdigCghALl7ZZtHju3PX533xlE1/WWNDsDqRCSJBCfxGBavCyL0W4i2dDmkCLrf7F/wRapoLfs9gRX3WIwuzKQX4oYckxFCinxfflzcjFxiIjlD5oQb3iMPO5sn7/K2jQZhngb1qR8R9wfpjBHrMyy8OVIB+vj5ejiv2Dl2YgDdxSL+TgIKrX/2UuCEcaQyLIzPS0+W6A407oh8eqhTjPu82B+k14KVA2cdHOdSr2QE+vlcRIkpsmWkJH0huyRa4affQ8upKlFGLV1ePxM5bfVL1Y/Cv/nEAvf9al8yYS24j0zfFWuWObIc0SiRgUdhGAy3ZN
Juju:juju-client-key
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/GNzqCV/gN/ANutYvGzWDfjQvc+u6sTSY4gnxb8owKy7wNRI/d/BVaD9ZDVAWxD3dcpDMWK6Pp6GuCYou+PfVZ4GNCpFG62hD8ECOcjLoKKKpJ71Ucia7I3qywQAqk5mDDXrjSUHr0pZv55kOrRX+1TwHEqDOcnWcskLikyzzFXk/R37c7ljuHN+SOsXnZPWw5bhrgIYnO3HjFfHmlMIMKXBxrljqbp5jne03WUKVki6TWoABBqgCQvLhSC0W/g3cGcgUupaViRgW1sT4WJRtKoPW6Ir5c8KDPpCi8jMv0UGPgicU5TYUwkV1PVBKYWePdr+L1lXT1dyO/2NiznE3
Juju:aim@mint13
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCku3S15arkd1UemnPOEtjCEg+1ugjNyCanFSpOZ754HpzdIYSWLzffznTdLFGrIsEHthYLeC31MsmTCZU81JO0VA+IOUyR4pUIRe8JKyMkHZyI/S68iVys+3fz9lXNcJ7/rBQXTSfRQvFrReX1UA2ycASkY639nHMiAQ+loRHPj+tqu4jBLutMUvvqXAL5OjDXEU8ruq2yf8dWZrKdPRPT6zccO+gzRxHnvQAM0CY+31sRhbaxVDPypBpg7HoIK+mqFdy0YB4OxV57MdCOMRk0dhx2TrrSS4kqgkZY+n/v8hSq4+7owTEAgkjIlnan7Pvx9AtH9iwXfE7HNleQXI3B
Juju:juju-system-key
sudo:
- ALL=(ALL) NOPASSWD:ALL
user.user.juju-environment: juju
volatile.base_image: 6cb0ba80a5fe32357568a473cbaf69f14d26da0ba6b08f5b1bcde7053fc73757
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":100000,"Nsid":0,"Maprange":65536}]'
devices:
root:
path: /
type: disk
ephemeral: false
|