author | Tero Marttila <terom@fixme.fi> |
Mon, 30 Jan 2012 13:35:12 +0200 | |
changeset 20 | ee16d147a06c |
parent 18 | 65301be81959 |
child 21 | e26b3773ae0e |
permissions | -rwxr-xr-x |
0 | 1 |
#!/bin/bash |
2 |
||
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
3 |
### Initialize |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
4 |
set -u |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
5 |
set -e |
0 | 6 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
7 |
TESTING= |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
8 |
|
9 | 9 |
DO_SHOWSPEC=y |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
10 |
DO_VIRTINSTALL= |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
11 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
12 |
scripts=$(dirname $0)/scripts |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
13 |
. $scripts/lib.sh |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
14 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
15 |
### Command-line input |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
16 |
## Command-line options |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
17 |
function _help () { |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
18 |
cat <<END |
8 | 19 |
Usage: $1 [options] <name> [param=value [...]] |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
20 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
21 |
Options: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
22 |
-h Show this help text |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
23 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
24 |
-D Debug |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
25 |
-v Verbose |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
26 |
-q Quiet |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
27 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
28 |
-N Mock command execution |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
29 |
-P Skip command prompts |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
30 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
31 |
-I Do a virt-install |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
32 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
33 |
-T Just testing.. |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
34 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
35 |
Parameters are given as: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
36 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
37 |
name=value-{FOO} |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
38 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
39 |
END |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
40 |
} |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
41 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
42 |
while getopts "hDvqNPTI" opt; do |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
43 |
case "$opt" in |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
44 |
h) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
45 |
_help $0 |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
46 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
47 |
exit 0 |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
48 |
;; |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
49 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
50 |
D) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
51 |
LOG_DEBUG=y |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
52 |
LOG_CMD=y |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
53 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
54 |
;; |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
55 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
56 |
v) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
57 |
LOG_CMD=y |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
58 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
59 |
log_debug "log: Commands" |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
60 |
;; |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
61 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
62 |
q) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
63 |
LOG_CMD= |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
64 |
LOG_INFO= |
9 | 65 |
DO_SHOWSPEC= |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
66 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
67 |
log_debug "log: Quiet" |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
68 |
;; |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
69 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
70 |
N) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
71 |
log_info "Mock-executing commands (this will break functionality..)" |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
72 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
73 |
CMD_MOCK=y |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
74 |
;; |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
75 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
76 |
P) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
77 |
log_info "Skipping command confirmations" |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
78 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
79 |
CMD_PROMPT= |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
80 |
;; |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
81 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
82 |
T) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
83 |
log_info "Just testing.." |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
84 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
85 |
TESTING=y |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
86 |
;; |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
87 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
88 |
I) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
89 |
log_info "Do virt-install" |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
90 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
91 |
DO_VIRTINSTALL=y |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
92 |
;; |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
93 |
?) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
94 |
_help $0 |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
95 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
96 |
exit 1 |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
97 |
;; |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
98 |
esac |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
99 |
done |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
100 |
|
9 | 101 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
102 |
# forget them |
9 | 103 |
[ $OPTIND -gt 1 ] && shift $(( $OPTIND - 1 )) |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
104 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
105 |
## Command-line arguments |
8 | 106 |
# Name |
107 |
[ -z $1 ] && die "Machine name must be given as first argument" |
|
108 |
||
109 |
opt_name="$1"; shift |
|
110 |
||
111 |
# Defaults |
|
112 |
function define_opt () { |
|
113 |
local name=$1 |
|
114 |
local value=${2:-} |
|
115 |
||
116 |
log_debugf "%-20s = %s" $name "$value" |
|
117 |
eval "opt_${name}=${value}" |
|
118 |
} |
|
119 |
||
120 |
function resolve_name () { |
|
121 |
local name=$1 |
|
122 |
local out=$(dig +short $name) |
|
123 |
||
124 |
[ -z "$out" ] && die "Hostname lookup failed: $name" |
|
125 |
||
126 |
echo $out |
|
127 |
} |
|
128 |
||
129 |
define_opt ram 1G |
|
130 |
define_opt cpus 2 |
|
131 |
define_opt os debiansqueeze |
|
132 |
define_opt disk_size 10G |
|
133 |
define_opt disk_vg pvl |
|
134 |
define_opt disk_lv $opt_name |
|
135 |
define_opt disk_bus virtio |
|
136 |
define_opt guest_disk /dev/vda |
|
137 |
define_opt hostname $opt_name |
|
138 |
define_opt bridge br-lan |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
139 |
define_opt domain paivola.fi |
9 | 140 |
define_opt ip |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
141 |
define_opt puppet |
15 | 142 |
define_opt puppet_master puppet |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
143 |
define_opt serial_console |
8 | 144 |
|
145 |
log_info "Processing ${#@} parameters:" |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
146 |
for param in "$@"; do |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
147 |
name=${param%=*} |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
148 |
value=${param##*=} |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
149 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
150 |
# evaluate |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
151 |
value=$(expand_line "$value") |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
152 |
|
8 | 153 |
define_opt ${name} "${value}" |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
154 |
done |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
155 |
|
9 | 156 |
# resolve defaults |
157 |
if [ -z $opt_ip ]; then |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
158 |
define_opt ip $(resolve_name ${opt_name}.${opt_domain}) |
9 | 159 |
fi |
160 |
||
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
161 |
### Virtual machine config |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
162 |
## General |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
163 |
NAME=$opt_name |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
164 |
DOMAIN=$opt_domain |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
165 |
FQDN=${NAME}.${DOMAIN} |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
166 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
167 |
## libvirt guest info |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
168 |
# Name |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
169 |
GUEST_NAME=$NAME |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
170 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
171 |
# Basic params |
8 | 172 |
GUEST_RAM=$opt_ram |
173 |
GUEST_VCPUS=$opt_cpus |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
174 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
175 |
# OS variant (for virt-install) |
8 | 176 |
GUEST_OS_VARIANT=$opt_os |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
177 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
178 |
## Disk |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
179 |
# Size of LV to create |
8 | 180 |
DISK_SIZE=$opt_disk_size |
0 | 181 |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
182 |
# LVM vg to use |
8 | 183 |
DISK_VG=$opt_disk_vg |
0 | 184 |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
185 |
# LVM lv to use |
8 | 186 |
DISK_NAME=$opt_disk_lv |
0 | 187 |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
188 |
# Path to disk block device |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
189 |
DISK_PATH=/dev/mapper/${DISK_VG}-${DISK_NAME} |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
190 |
GUEST_DISK_BUS=$opt_disk_bus |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
191 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
192 |
## Serial |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
193 |
# Serial console? |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
194 |
# XXX: hardcoded as ttyS0 |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
195 |
case x"$opt_serial_console" in |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
196 |
# xtty*) SERIAL_CONSOLE="$opt_serial_console" ;; |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
197 |
x) SERIAL_CONSOLE= ;; |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
198 |
x*) SERIAL_CONSOLE="ttyS0" ;; |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
199 |
esac |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
200 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
201 |
### Preseed content |
8 | 202 |
GUEST_DISK=$opt_guest_disk |
0 | 203 |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
204 |
## Network |
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
205 |
# Network configuration, for /etc/network/interfaces |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
206 |
NET_DOMAIN=${DOMAIN} |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
207 |
NET_HOSTNAME=${NAME} |
8 | 208 |
NET_BRIDGE=$opt_bridge |
209 |
NET_IPADDR=$opt_ip |
|
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
210 |
NET_NETMASK=255.255.255.0 |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
211 |
NET_GATEWAY=194.197.235.1 |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
212 |
NET_NAMESERVERS=( 194.197.235.210 194.197.235.252 ) |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
213 |
|
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
214 |
## Clock/time |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
215 |
TIME_ZONE='Europe/Helsinki' |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
216 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
217 |
# only used during install, not stored in target |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
218 |
TIME_NTP_SERVER=ntp.paivola.fi # XXX: harcoded |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
219 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
220 |
## User account |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
221 |
function getent_user_attr () { |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
222 |
local user=$1 |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
223 |
local db=$2 |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
224 |
local attr=$3 |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
225 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
226 |
line=$(getent $db $user) || die "Unable to read $db database for $user" |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
227 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
228 |
echo "$line" | cut -d ':' -f $attr |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
229 |
} |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
230 |
function user_fullname () { |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
231 |
local user=$1 |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
232 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
233 |
getent_user_attr $user passwd 5 |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
234 |
} |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
235 |
function user_shadow () { |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
236 |
local user=$1 |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
237 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
238 |
if [ $UID -eq 0 ]; then |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
239 |
log_debug "Get user password from shadow: $user" |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
240 |
getent_user_attr $user shadow 2 |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
241 |
else |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
242 |
echo -n "Install target login ($USER_NAME) " >&2 |
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
243 |
mkpasswd -m sha-512 |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
244 |
fi |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
245 |
} |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
246 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
247 |
# XXX: hardcoded |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
248 |
USER_CREATE='true' |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
249 |
USER_NAME=$USER |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
250 |
USER_FULLNAME=$(user_fullname $USER) |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
251 |
USER_SHADOW=$(user_shadow $USER) |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
252 |
USER_GROUPS=( cdrom sudo adm ) |
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
253 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
254 |
### Installer setup |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
255 |
## Installation image |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
256 |
# Original Debian Installer image (iso) |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
257 |
INSTALLER_NAME="debian-6.0.3-amd64" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
258 |
INSTALLER_ISO="iso-in/${INSTALLER_NAME}-netinst.iso" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
259 |
INSTALLER_TREE="iso-in/$INSTALLER_NAME" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
260 |
INSTALLER_FLAG="${INSTALLER_TREE}.unpacked" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
261 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
262 |
# Customized preseed image name |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
263 |
INSTALL_NAME="debian-6.0.3-amd64_${GUEST_NAME}" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
264 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
265 |
# Customized image content |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
266 |
INSTALL_TREE="images/${INSTALL_NAME}" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
267 |
INSTALL_ISO="iso-out/${INSTALL_NAME}.iso" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
268 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
269 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
270 |
### Preseed setup |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
271 |
## preseed.cfg templating |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
272 |
PRESEED_DIR="preseed" |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
273 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
274 |
# Preseed output file in install tree |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
275 |
PRESEED_NAME="preseed.cfg" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
276 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
277 |
# Mount path of preseed target in installer |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
278 |
PRESEED_MOUNT="/cdrom" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
279 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
280 |
# Prefix for target files in install tree |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
281 |
# XXX: not implemented |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
282 |
#PRESEED_TARGET_PREFIX="" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
283 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
284 |
# Main preseed source template |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
285 |
PRESEED_TEMPLATE="${PRESEED_DIR}/${PRESEED_NAME}" |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
286 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
287 |
# Target path for preseed in install tree |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
288 |
PRESEED_FILE="${INSTALL_TREE}/${PRESEED_NAME}" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
289 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
290 |
# Checksum of target preseed.cfg |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
291 |
PRESEED_CHECKSUM= # set later |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
292 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
293 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
294 |
## preseed.cfg contents |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
295 |
# List of additional packages to install |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
296 |
PRESEED_PACKAGES=( sudo screen vim ) |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
297 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
298 |
# Script commands to execute |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
299 |
PRESEED_LATE_COMMANDS=( ) |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
300 |
PRESEED_LATE_COMMANDS_END=( ) |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
301 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
302 |
# Chainload preseed files |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
303 |
PRESEED_INCLUDES=( 'passwords.cfg' 'host.cfg' ) |
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
304 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
305 |
# Add packages to preseed install |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
306 |
function preseed_packages () { |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
307 |
PRESEED_PACKAGES=( ${PRESEED_PACKAGES[@]} "$@" ) |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
308 |
} |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
309 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
310 |
# Add command to execute |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
311 |
function preseed_late_commands () { |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
312 |
PRESEED_LATE_COMMANDS=( "${PRESEED_LATE_COMMANDS[@]:-}" "$@" ) |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
313 |
} |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
314 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
315 |
# Add command to execute at end |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
316 |
# XXX: ordering? |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
317 |
function preseed_late_commands_end () { |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
318 |
PRESEED_LATE_COMMANDS_END=( "${PRESEED_LATE_COMMANDS_END[@]:-}" "$@" ) |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
319 |
} |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
320 |
|
15 | 321 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
322 |
## preseed-files |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
323 |
# template source |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
324 |
PRESEED_FILES_SOURCES=( 'preseed/files' ) |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
325 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
326 |
# template output into install tree |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
327 |
PRESEED_FILES_TARGET_NAME='preseed-files' |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
328 |
PRESEED_FILES_TARGET="${INSTALL_TREE}/${PRESEED_FILES_TARGET_NAME}" |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
329 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
330 |
# paths within installer runtime |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
331 |
PRESEED_FILES_INSTALLER_SOURCE="${PRESEED_MOUNT}/${PRESEED_FILES_TARGET_NAME}" |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
332 |
PRESEED_FILES_INSTALLER_TARGET='/target' |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
333 |
|
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
334 |
# Add a tree of configuration files to template into the installer |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
335 |
function preseed_conf_files () { |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
336 |
PRESEED_FILES_SOURCES=( "${PRESEED_FILES_SOURCES[@]:-}" "$@" ) |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
337 |
} |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
338 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
339 |
# Add a file to install in preseed, without templating |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
340 |
# preseed_file <src> <dst>/ |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
341 |
# if dst is a dir, it must end in / |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
342 |
function preseed_file () { |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
343 |
local src=$1 |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
344 |
local dst=$2 |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
345 |
local dir=$(dirname $dst) |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
346 |
local tgt=${PRESEED_FILES_TARGET} |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
347 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
348 |
local tgt_dir="$tgt/$dir" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
349 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
350 |
if [ ! -d "$tgt_dir" ]; then |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
351 |
cmd mkdir -p "$tgt_dir" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
352 |
fi |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
353 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
354 |
cmd cp "$src" "$tgt/$dst" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
355 |
} |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
356 |
|
15 | 357 |
### Extra |
358 |
## Puppet |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
359 |
PUPPET= |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
360 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
361 |
if [ $opt_puppet ]; then |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
362 |
log_info "Puppetizing preseed" |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
363 |
PUPPET=yes |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
364 |
|
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
365 |
PUPPET_PRESEED_DIR="${PRESEED_DIR}/puppet" |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
366 |
|
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
367 |
## Packages |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
368 |
preseed_packages puppet |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
369 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
370 |
## Vars for preseed-files |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
371 |
# hostname for puppetmaster (server) |
15 | 372 |
PUPPET_MASTER="${opt_puppet_master}" |
373 |
||
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
374 |
# path ssl data (ssldir) |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
375 |
PUPPET_SSLDIR=/etc/puppet/ssl |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
376 |
|
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
377 |
## Preseed files |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
378 |
# add to list of conf files to copy |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
379 |
preseed_conf_files "${PUPPET_PRESEED_DIR}/files" |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
380 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
381 |
fi |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
382 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
383 |
# Invoked during image-customizing process |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
384 |
function puppet_config () { |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
385 |
## Preseed ssl certs? |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
386 |
PUPPET_SOURCE_SSLDIR="${PUPPET_PRESEED_DIR}/ssl" |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
387 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
388 |
# copy file to preseed if exists |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
389 |
function puppet_preseed_ssl_file () { |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
390 |
local name=$1 |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
391 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
392 |
local src=${PUPPET_SOURCE_SSLDIR}/$name |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
393 |
local dst=${PUPPET_SSLDIR}/$name |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
394 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
395 |
if [ -f $src ]; then |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
396 |
log_info "puppet: preseed ssl data: $name" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
397 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
398 |
cmd preseed_file $src $dst |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
399 |
else |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
400 |
log_debug "puppet: skip ssl preseed: $name" |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
401 |
fi |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
402 |
} |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
403 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
404 |
# ca.pem |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
405 |
puppet_preseed_ssl_file certs/ca.pem |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
406 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
407 |
# guest cert/pkey |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
408 |
puppet_preseed_ssl_file certs/${FQDN}.pem |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
409 |
puppet_preseed_ssl_file private_keys/${FQDN}.pem |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
410 |
} |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
411 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
412 |
## Configure GRUB, via preseed/files: /etc/default/grub |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
413 |
# Kernel commandline/grub terminal |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
414 |
# The last console=... for kernel is used as /dev/console, i.e. init output |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
415 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
416 |
if [ $SERIAL_CONSOLE ]; then |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
417 |
BOOT_KERNEL_CONSOLE="console=${SERIAL_CONSOLE} console=tty0" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
418 |
BOOT_GRUB_TERMINAL="console serial" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
419 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
420 |
# re-generate grub.cfg |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
421 |
preseed_late_commands_end "in-target update-grub" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
422 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
423 |
# Configure /etc/inittab for serial console |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
424 |
preseed_late_commands "in-target sed -i 's/#T0/T0/' /etc/inittab" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
425 |
else |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
426 |
BOOT_KERNEL_CONSOLE="" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
427 |
BOOT_GRUB_TERMINAL="console" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
428 |
fi |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
429 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
430 |
# Kernel boot args (overrides those generated by installer) - default boot option uses args + args_default |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
431 |
BOOT_KERNEL_ARGS_DEFAULT="quiet" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
432 |
BOOT_KERNEL_ARGS="${BOOT_KERNEL_CONSOLE}" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
433 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
434 |
### Postprocess preseed |
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
435 |
## Preseed files |
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
436 |
## Preseed / config files |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
437 |
|
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
438 |
|
15 | 439 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
440 |
# copy at end of install |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
441 |
preseed_late_commands "cp -rd -- ${PRESEED_FILES_INSTALLER_SOURCE}/* ${PRESEED_FILES_INSTALLER_TARGET}" |
15 | 442 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
443 |
# Additional files to copy |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
444 |
PRESEED_INCLUDE_FILES=( $(for preseed in ${PRESEED_INCLUDES[@]}; do echo "${PRESEED_DIR}/${preseed}"; done) ) |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
445 |
#PRESEED_INCLUDE_FILES=("preseed/passwords.cfg" "preseed/host.cfg") |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
446 |
|
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
447 |
# preseed.cfg 'includes' line |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
448 |
PRESEED_INCLUDE=${PRESEED_INCLUDES[@]} |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
449 |
|
15 | 450 |
# preseed command execution |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
451 |
PRESEED_LATE_COMMAND=$(for cmd in "${PRESEED_LATE_COMMANDS[@]}" "${PRESEED_LATE_COMMANDS_END[@]:-}"; do if [ "$cmd" ]; then echo -n "$cmd;" $'\\\n '; fi; done; echo true) |
15 | 452 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
453 |
|
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
454 |
## Isolinux |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
455 |
# Source for install tree isolinux file |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
456 |
PRESEED_ISOLINUX="${PRESEED_DIR}/isolinux.cfg" |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
457 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
458 |
# Automagics for serial boot :) |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
459 |
# virt-install assumes we have an X $DISPLAY if given --vnc |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
460 |
# but we also want to enable the serial console... |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
461 |
# d-i automagically configures the serial boot/login console, but only if the installer is run under serial... |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
462 |
# we want to have both :( |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
463 |
if [ ${DISPLAY:-} ]; then |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
464 |
INSTALL_BOOT_CONSOLE="" |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
465 |
else |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
466 |
INSTALL_BOOT_CONSOLE="console=ttyS0" |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
467 |
fi |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
468 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
469 |
# isolinux installer boot args |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
470 |
INSTALL_BOOT_ARGS="auto=true priority=critical preseed/file=${PRESEED_MOUNT}/${PRESEED_NAME} preseed/file/checksum=${PRESEED_CHECKSUM} -- ${INSTALL_BOOT_CONSOLE} quiet" |
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
471 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
472 |
### External progs |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
473 |
## Bootable .iso for Debian isolinux-based installer CDs |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
474 |
GENISOIMAGE=/usr/bin/genisoimage |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
475 |
GENISOIMAGE_OPTS="-r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
476 |
|
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
477 |
## LVM |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
478 |
LVM=/sbin/lvm |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
479 |
|
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
480 |
## Libvirt |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
481 |
# --connect URL |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
482 |
LIBVIRT=qemu:///system |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
483 |
VIRSH=/usr/bin/virsh |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
484 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
485 |
function virsh () { |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
486 |
$VIRSH --connect $LIBVIRT "$@" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
487 |
} |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
488 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
489 |
# type of guest to create |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
490 |
LIBVIRT_TYPE=kvm |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
491 |
|
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
492 |
## virt-install |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
493 |
VIRT_INSTALL="/usr/bin/virt-install" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
494 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
495 |
## SELinux? |
0 | 496 |
#SEMANAGE=/usr/sbin/semanage |
497 |
#RESTORECON=/sbin/restorecon |
|
498 |
||
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
499 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
500 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
501 |
### Prepare |
9 | 502 |
if [ $DO_SHOWSPEC ]; then |
503 |
cat <<END |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
504 |
Guest: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
505 |
Name: $GUEST_NAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
506 |
CPUs: $GUEST_VCPUS |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
507 |
RAM: $GUEST_RAM |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
508 |
OS: $GUEST_OS_VARIANT |
0 | 509 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
510 |
Disk: $GUEST_DISK |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
511 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
512 |
Boot: |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
513 |
Serial console: $SERIAL_CONSOLE |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
514 |
Grub terminal: $BOOT_GRUB_TERMINAL |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
515 |
Kernel args: $BOOT_KERNEL_ARGS ($BOOT_KERNEL_ARGS_DEFAULT) |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
516 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
517 |
Disk: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
518 |
Method: LVM |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
519 |
Size: $DISK_SIZE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
520 |
LVM: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
521 |
VG: $DISK_VG |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
522 |
LV: $DISK_NAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
523 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
524 |
Path: $DISK_PATH |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
525 |
Bus: $GUEST_DISK_BUS |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
526 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
527 |
Net: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
528 |
Hostname: $NET_HOSTNAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
529 |
Method: Bridge |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
530 |
IP: $NET_IPADDR |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
531 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
532 |
Bridge: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
533 |
Name: $NET_BRIDGE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
534 |
|
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
535 |
User: |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
536 |
username: $USER_NAME |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
537 |
fullname: $USER_FULLNAME |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
538 |
shadow: $USER_SHADOW |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
539 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
540 |
Installer: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
541 |
Name: $INSTALLER_NAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
542 |
ISO: $INSTALLER_ISO |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
543 |
Tree: $INSTALLER_TREE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
544 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
545 |
Install: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
546 |
Name: $INSTALL_NAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
547 |
Tree: $INSTALL_TREE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
548 |
ISO: $INSTALL_ISO |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
549 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
550 |
Preseed: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
551 |
Name: $PRESEED_NAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
552 |
Template: $PRESEED_TEMPLATE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
553 |
Target: $PRESEED_FILE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
554 |
Isolinux: $PRESEED_ISOLINUX |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
555 |
Includes: $PRESEED_INCLUDES |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
556 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
557 |
END |
9 | 558 |
fi |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
559 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
560 |
[ $TESTING ] && exit 0 |
0 | 561 |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
562 |
### Check |
8 | 563 |
# Parameters given? |
564 |
[ -z $NET_IPADDR ] && die "net: No IP-address given: ip" |
|
565 |
||
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
566 |
# Installer exists? |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
567 |
if cmd test ! -f ${INSTALLER_ISO}; then |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
568 |
die "Installer not found: ${INSTALLER_ISO}" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
569 |
fi |
0 | 570 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
571 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
572 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
573 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
574 |
### Prepare install |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
575 |
log_info "Extract installer..." |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
576 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
577 |
## Extract .iso |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
578 |
if [ -f ${INSTALLER_FLAG} ]; then |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
579 |
log_info "Installer already unpacked: ${INSTALLER_TREE}" |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
580 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
581 |
else |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
582 |
log_info "Unpacking installer: ${INSTALLER_ISO}" |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
583 |
cmd extract_iso ${INSTALLER_ISO} ${INSTALLER_TREE} |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
584 |
cmd touch ${INSTALLER_FLAG} |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
585 |
fi |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
586 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
587 |
## Copy to customized tree |
11
8e5fce1229b6
fix extract_image/copy tree to copy symlinks with cp -rd - .iso halves is size
Tero Marttila <terom@fixme.fi>
parents:
9
diff
changeset
|
588 |
[ -d ${INSTALL_TREE} ] && cmd rm -r ${INSTALL_TREE} |
8e5fce1229b6
fix extract_image/copy tree to copy symlinks with cp -rd - .iso halves is size
Tero Marttila <terom@fixme.fi>
parents:
9
diff
changeset
|
589 |
cmd cp -rd ${INSTALLER_TREE} ${INSTALL_TREE} |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
590 |
cmd chmod -R u=rwX,og=rX ${INSTALL_TREE} |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
591 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
592 |
log_info "Installer extracted: $INSTALL_TREE" |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
593 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
594 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
595 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
596 |
### Customize preseed |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
597 |
log_info "Generate preseed..." |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
598 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
599 |
## preseed.cfg |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
600 |
cmd expand_template ${PRESEED_TEMPLATE} ${PRESEED_FILE} |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
601 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
602 |
# md5sum |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
603 |
PRESEED_CHECKSUM=$(my_md5sum $PRESEED_FILE) |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
604 |
|
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
605 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
606 |
## Isolinux |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
607 |
cmd expand_template ${PRESEED_ISOLINUX} ${INSTALL_TREE}/isolinux/isolinux.cfg |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
608 |
|
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
609 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
610 |
## Includes |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
611 |
for file in ${PRESEED_INCLUDE_FILES[@]}; do |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
612 |
name=$(basename $file) |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
613 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
614 |
cmd expand_template $file ${INSTALL_TREE}/${name} |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
615 |
done |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
616 |
|
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
617 |
log_debug "Preseed generated: $PRESEED_FILE" |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
618 |
|
0 | 619 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
620 |
## Config preseed-files |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
621 |
log_info "Copy preseed-files..." |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
622 |
|
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
623 |
for tree in "${PRESEED_FILES_SOURCES[@]}"; do |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
624 |
log_info "preseed-files: $tree" |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
625 |
|
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
626 |
cmd expand_tree $tree ${PRESEED_FILES_TARGET} |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
627 |
done |
15 | 628 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
629 |
## Modules |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
630 |
# Puppet |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
631 |
[ $PUPPET ] && puppet_config |
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
632 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
633 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
634 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
635 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
636 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
637 |
### Create .iso |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
638 |
log_info "Generate ISO..." |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
639 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
640 |
[ -f ${INSTALL_ISO} ] && cmd rm -f ${INSTALL_ISO} |
0 | 641 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
642 |
# generates a lot of output |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
643 |
cmd ${GENISOIMAGE} -o ${INSTALL_ISO} -quiet ${GENISOIMAGE_OPTS} ${INSTALL_TREE} |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
644 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
645 |
log_info "Install ISO generated: $INSTALL_ISO" |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
646 |
|
18
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
647 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
648 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
649 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
650 |
|
65301be81959
puppet: preinstall ca+host ssl certs
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
651 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
652 |
### Create virtual machine |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
653 |
if [ $DO_VIRTINSTALL ]; then |
20
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
654 |
log_info "Create VM..." |
ee16d147a06c
modularize puppet preseed conf files
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
655 |
|
13
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
656 |
## Check |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
657 |
# VM exists? |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
658 |
if cmd virsh domid ${GUEST_NAME} > /dev/null 2> /dev/null; then |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
659 |
die "Virtual machine already exists: ${GUEST_NAME}" |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
660 |
fi |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
661 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
662 |
## Disk |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
663 |
# Create LV (unless it already exists) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
664 |
[ -e $DISK_PATH ] || cmd_confirm sudo $LVM lvcreate -L $DISK_SIZE -n $DISK_NAME $DISK_VG |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
665 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
666 |
## SELinux? |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
667 |
#$SEMANAGE fcontext -a -t virt_image_t $DISK |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
668 |
#$RESTORECON -v $DISK |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
669 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
670 |
## virt-install |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
671 |
cmd_confirm $VIRT_INSTALL \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
672 |
--connect $LIBVIRT \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
673 |
--name $GUEST_NAME \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
674 |
--ram $(expand_MB $GUEST_RAM) --vcpus $GUEST_VCPUS \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
675 |
--cdrom "$INSTALL_ISO" \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
676 |
--os-variant $GUEST_OS_VARIANT \ |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
677 |
--disk path=$DISK_PATH,bus=$GUEST_DISK_BUS \ |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
678 |
--network bridge:$NET_BRIDGE \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
679 |
--virt-type $LIBVIRT_TYPE \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
680 |
--accelerate --hvm \ |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
681 |
--vnc \ |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
682 |
--serial pty |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
683 |
fi |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
684 |