File: 10-nova-agent

package info (click to toggle)
python-diskimage-builder 3.37.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 5,572 kB
  • sloc: sh: 7,380; python: 6,444; makefile: 37
file content (138 lines) | stat: -rwxr-xr-x 3,243 bytes parent folder | download | duplicates (2)
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
#!/bin/bash
# Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
#
# 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.

if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
    set -x
fi
set -eu
set -o pipefail

cd /tmp/nova-agent
./installer.sh

cat > /etc/cloud/cloud.cfg.d/80_restart_network.cfg <<'EOF'
# Restart networking if it's got no IP. This is to catch if we're on RAX
# and the baked in dhcp config didn't work, but is now probably reconfigured
# by nova-agent
runcmd:
    - ip addr show eth0 | grep inet || ( ifdown -a ; ifup -a )
EOF

case "$DISTRO_NAME" in
    'ubuntu'|'debian')

    # cloud-init / nova-agent sad panda hacks
    cat > /etc/init/nova-agent.conf <<'EOF'
# nova-agent - start before cloud-init and hup network interfaces
start on starting cloud-init-local

task

console output

script
    /etc/init.d/nova-agent start
    sleep 13
    ifdown -a
    ifup -a
end script
EOF

    cat > /etc/init/xe-linux-distribution.conf <<'EOF'
# xe-linux-distribution - start the xentools before nova-agent runs
start on starting nova-agent

task

console output

script
    /etc/init.d/xe-linux-distribution start
    sleep 2
end script
EOF

    # stop nova-agent from starting twice since we start it from upstart now
    update-rc.d -f nova-agent remove
    update-rc.d -f xe-linux-distribution remove

    # console fix for PV Ubuntus
    cat > /etc/init/hvc0.conf <<'EOF'

# hvc0 - getty
#
# This service maintains a getty on hvc0 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -L 115200 hvc0 vt102
EOF
    ;;
    'fedora'|'centos'|'opensuse')

    cat > /usr/local/bin/run-nova-agent.sh <<'EOF'
#!/bin/bash
/etc/init.d/nova-agent start
sleep 13
ifdown -a
ifup -a
EOF
    chmod 0755 /usr/local/bin/run-nova-agent.sh

    cat > /usr/local/bin/run-xe-linux-distribution.sh <<'EOF'
#!/bin/bash
/etc/init.d/xe-linux-distribution start
sleep 2
EOF
    chmod 0755 /usr/local/bin/run-xe-linux-distribution.sh

    cat > /etc/systemd/system/nova-agent.service <<EOF
[Unit]
Description=Rackspace nova-agent
Before=cloud-init-local
Wants=cloud-init-local

[Service]
ExecStart=/usr/local/bin/run-nova-agent.sh

[Install]
WantedBy=multi-user.target
EOF

    cat > /etc/systemd/system/xe-linux-distribution.service <<'EOF'
[Unit]
Description=xentools agent
Before=nova-agent
Wants=nova-agent

[Service]
ExecStart=/usr/local/bin/run-xe-linux-distribution.sh

[Install]
WantedBy=multi-user.target
EOF
    # stop nova-agent from starting twice since we start it from systemd now
    chkconfig nova-agent off
    chkconfig xe-linux-distribution off

    systemctl enable nova-agent
    systemctl enable xe-linux-distribution
    ;;
esac