author | Tero Marttila <terom@fixme.fi> |
Mon, 30 Jan 2012 11:21:26 +0200 | |
changeset 16 | d74646c0b5dd |
parent 15 | e3893b949972 |
child 18 | 65301be81959 |
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 |
|
139 |
define_opt dns_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 |
|
158 |
define_opt ip $(resolve_name ${opt_name}.${opt_dns_domain}) |
|
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 |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
162 |
## libvirt guest info |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
163 |
# Name |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
164 |
GUEST_NAME=$opt_name |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
165 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
166 |
# Basic params |
8 | 167 |
GUEST_RAM=$opt_ram |
168 |
GUEST_VCPUS=$opt_cpus |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
169 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
170 |
# OS variant (for virt-install) |
8 | 171 |
GUEST_OS_VARIANT=$opt_os |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
172 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
173 |
## Disk |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
174 |
# Size of LV to create |
8 | 175 |
DISK_SIZE=$opt_disk_size |
0 | 176 |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
177 |
# LVM vg to use |
8 | 178 |
DISK_VG=$opt_disk_vg |
0 | 179 |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
180 |
# LVM lv to use |
8 | 181 |
DISK_NAME=$opt_disk_lv |
0 | 182 |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
183 |
# Path to disk block device |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
184 |
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
|
185 |
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
|
186 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
187 |
## Serial |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
188 |
# Serial console? |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
189 |
# XXX: hardcoded as ttyS0 |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
190 |
case x"$opt_serial_console" in |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
191 |
# xtty*) SERIAL_CONSOLE="$opt_serial_console" ;; |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
192 |
x) SERIAL_CONSOLE= ;; |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
193 |
x*) SERIAL_CONSOLE="ttyS0" ;; |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
194 |
esac |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
195 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
196 |
### Preseed content |
8 | 197 |
GUEST_DISK=$opt_guest_disk |
0 | 198 |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
199 |
## 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
|
200 |
# Network configuration, for /etc/network/interfaces |
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
201 |
NET_DOMAIN=paivola.fi |
8 | 202 |
NET_HOSTNAME=$opt_hostname |
203 |
NET_BRIDGE=$opt_bridge |
|
204 |
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
|
205 |
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
|
206 |
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
|
207 |
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
|
208 |
|
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
|
209 |
## 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
|
210 |
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
|
211 |
|
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 |
# 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
|
213 |
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
|
214 |
|
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 |
## 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
|
216 |
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
|
217 |
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
|
218 |
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
|
219 |
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
|
220 |
|
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 |
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
|
222 |
|
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 |
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
|
224 |
} |
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 |
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
|
226 |
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
|
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 |
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
|
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_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
|
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 |
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
|
234 |
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
|
235 |
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
|
236 |
else |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
237 |
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
|
238 |
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
|
239 |
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
|
240 |
} |
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 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
242 |
# 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
|
243 |
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
|
244 |
USER_NAME=$USER |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
245 |
USER_FULLNAME=$(user_fullname $USER) |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
246 |
USER_SHADOW=$(user_shadow $USER) |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
247 |
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
|
248 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
249 |
## Misc |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
250 |
PACKAGE_INCLUDES=( sudo screen vim ) |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
251 |
PRESEED_LATE_COMMANDS=( ) |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
252 |
PRESEED_LATE_COMMANDS_END=( ) |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
253 |
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
|
254 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
255 |
function preseed_late_commands () { |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
256 |
PRESEED_LATE_COMMANDS=( "${PRESEED_LATE_COMMANDS[@]:-}" "$@" ) |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
257 |
} |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
258 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
259 |
# XXX: ordering? |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
260 |
function preseed_late_commands_end () { |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
261 |
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
|
262 |
} |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
263 |
|
15 | 264 |
|
265 |
### Extra |
|
266 |
## Puppet |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
267 |
if [ $opt_puppet ]; then |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
268 |
log_info "Puppetizing preseed" |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
269 |
|
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
270 |
PUPPET_PACKAGES=( puppet ) |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
271 |
PUPPET_COMMANDS=( \ |
15 | 272 |
# "in-target sed -i 's/START=no/START=yes/' /etc/default/puppet" \ |
273 |
# "echo '[agent]\nserver = ${opt_puppet_master}\n' >> /etc/puppet/puppet.conf" \ |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
274 |
) |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
275 |
|
15 | 276 |
# XXX: we use files in preseed/files/..., should modularize those |
277 |
||
278 |
PUPPET_MASTER="${opt_puppet_master}" |
|
279 |
||
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
280 |
PACKAGE_INCLUDES=( ${PACKAGE_INCLUDES[@]} ${PUPPET_PACKAGES[@]} ) |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
281 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
282 |
[ "${PUPPET_COMMANDS[@]:-}" ] && preseed_late_commands "${PUPPET_COMMANDS[@]}" |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
283 |
fi |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
284 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
285 |
## 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
|
286 |
# Kernel commandline/grub terminal |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
287 |
# 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
|
288 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
289 |
if [ $SERIAL_CONSOLE ]; then |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
290 |
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
|
291 |
BOOT_GRUB_TERMINAL="console serial" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
292 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
293 |
# re-generate grub.cfg |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
294 |
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
|
295 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
296 |
# Configure /etc/inittab for serial console |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
297 |
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
|
298 |
else |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
299 |
BOOT_KERNEL_CONSOLE="" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
300 |
BOOT_GRUB_TERMINAL="console" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
301 |
fi |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
302 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
303 |
# 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
|
304 |
BOOT_KERNEL_ARGS_DEFAULT="quiet" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
305 |
BOOT_KERNEL_ARGS="${BOOT_KERNEL_CONSOLE}" |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
306 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
307 |
|
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
|
308 |
### Installer setup |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
309 |
## Installation image |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
310 |
# Original Debian Installer image (iso) |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
311 |
INSTALLER_NAME="debian-6.0.3-amd64" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
312 |
INSTALLER_ISO="iso-in/${INSTALLER_NAME}-netinst.iso" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
313 |
INSTALLER_TREE="iso-in/$INSTALLER_NAME" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
314 |
INSTALLER_FLAG="${INSTALLER_TREE}.unpacked" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
315 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
316 |
# Customized preseed image name |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
317 |
INSTALL_NAME="debian-6.0.3-amd64_${GUEST_NAME}" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
318 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
319 |
# Customized image content |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
320 |
INSTALL_TREE="images/${INSTALL_NAME}" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
321 |
INSTALL_ISO="iso-out/${INSTALL_NAME}.iso" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
322 |
|
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
|
323 |
## Preseed files |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
324 |
# Preseed output file in install tree |
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
|
325 |
PRESEED_NAME="preseed.cfg" |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
326 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
327 |
# Directory containing our source templates |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
328 |
PRESEED_SOURCE_DIR="preseed" |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
329 |
|
15 | 330 |
# Mount path of preseed target in installer |
331 |
PRESEED_MOUNT="/cdrom" |
|
332 |
||
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
333 |
# Prefix for target files in install tree |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
334 |
# XXX: not implemented |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
335 |
#PRESEED_TARGET_PREFIX="" |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
336 |
|
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
337 |
# Main preseed source template |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
338 |
PRESEED_TEMPLATE="${PRESEED_SOURCE_DIR}/${PRESEED_NAME}" |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
339 |
|
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
340 |
# Target path for preseed in install tree |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
341 |
PRESEED_FILE="${INSTALL_TREE}/${PRESEED_NAME}" |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
342 |
|
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
343 |
# Checksum of target preseed.cfg |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
344 |
PRESEED_CHECKSUM= # set later |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
345 |
|
15 | 346 |
## Configs |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
347 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
348 |
# template source |
15 | 349 |
CONF_FILES_SOURCE='preseed/files' |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
350 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
351 |
# template output into install tree |
15 | 352 |
CONF_FILES_TARGET_NAME='preseed-files' |
353 |
CONF_FILES_TARGET="${INSTALL_TREE}/${CONF_FILES_TARGET_NAME}" |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
354 |
|
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
355 |
# paths within installer runtime |
15 | 356 |
CONF_FILES_CP_SRC="${PRESEED_MOUNT}/${CONF_FILES_TARGET_NAME}" |
357 |
CONF_FILES_CP_DST='/target' |
|
358 |
||
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
359 |
# copy at end of install |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
360 |
preseed_late_commands "cp -rd -- ${CONF_FILES_CP_SRC}/* ${CONF_FILES_CP_DST}" |
15 | 361 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
362 |
# Additional files to copy |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
363 |
PRESEED_INCLUDE_FILES=( $(for preseed in ${PRESEED_INCLUDES[@]}; do echo "${PRESEED_SOURCE_DIR}/${preseed}"; done) ) |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
364 |
#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
|
365 |
|
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
366 |
# preseed.cfg 'includes' line |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
367 |
PRESEED_INCLUDE=${PRESEED_INCLUDES[@]} |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
368 |
|
15 | 369 |
# preseed command execution |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
370 |
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 | 371 |
|
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
372 |
|
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
373 |
## Isolinux |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
374 |
# Source for install tree isolinux file |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
375 |
PRESEED_ISOLINUX="${PRESEED_SOURCE_DIR}/isolinux.cfg" |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
376 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
377 |
# Automagics for serial boot :) |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
378 |
# 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
|
379 |
# 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
|
380 |
# 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
|
381 |
# we want to have both :( |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
382 |
if [ ${DISPLAY:-} ]; then |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
383 |
INSTALL_BOOT_CONSOLE="" |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
384 |
else |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
385 |
INSTALL_BOOT_CONSOLE="console=ttyS0" |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
386 |
fi |
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
387 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
388 |
# isolinux installer boot args |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
389 |
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
|
390 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
391 |
### 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
|
392 |
## 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
|
393 |
GENISOIMAGE=/usr/bin/genisoimage |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
394 |
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
|
395 |
|
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
|
396 |
## LVM |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
397 |
LVM=/sbin/lvm |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
398 |
|
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
|
399 |
## 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
|
400 |
# --connect URL |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
401 |
LIBVIRT=qemu:///system |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
402 |
VIRSH=/usr/bin/virsh |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
403 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
404 |
function virsh () { |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
405 |
$VIRSH --connect $LIBVIRT "$@" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
406 |
} |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
407 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
408 |
# type of guest to create |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
409 |
LIBVIRT_TYPE=kvm |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
410 |
|
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
|
411 |
## virt-install |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
412 |
VIRT_INSTALL="/usr/bin/virt-install" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
413 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
414 |
## SELinux? |
0 | 415 |
#SEMANAGE=/usr/sbin/semanage |
416 |
#RESTORECON=/sbin/restorecon |
|
417 |
||
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
|
418 |
|
46fdb138420e
more parametrization in preseed.cfg, automagically get user values from terom + prompt for password
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
419 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
420 |
### Prepare |
9 | 421 |
if [ $DO_SHOWSPEC ]; then |
422 |
cat <<END |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
423 |
Guest: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
424 |
Name: $GUEST_NAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
425 |
CPUs: $GUEST_VCPUS |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
426 |
RAM: $GUEST_RAM |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
427 |
OS: $GUEST_OS_VARIANT |
0 | 428 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
429 |
Disk: $GUEST_DISK |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
430 |
|
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
431 |
Boot: |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
432 |
Serial console: $SERIAL_CONSOLE |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
433 |
Grub terminal: $BOOT_GRUB_TERMINAL |
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
434 |
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
|
435 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
436 |
Disk: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
437 |
Method: LVM |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
438 |
Size: $DISK_SIZE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
439 |
LVM: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
440 |
VG: $DISK_VG |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
441 |
LV: $DISK_NAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
442 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
443 |
Path: $DISK_PATH |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
444 |
Bus: $GUEST_DISK_BUS |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
445 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
446 |
Net: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
447 |
Hostname: $NET_HOSTNAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
448 |
Method: Bridge |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
449 |
IP: $NET_IPADDR |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
450 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
451 |
Bridge: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
452 |
Name: $NET_BRIDGE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
453 |
|
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
|
454 |
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
|
455 |
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
|
456 |
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
|
457 |
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
|
458 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
459 |
Installer: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
460 |
Name: $INSTALLER_NAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
461 |
ISO: $INSTALLER_ISO |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
462 |
Tree: $INSTALLER_TREE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
463 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
464 |
Install: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
465 |
Name: $INSTALL_NAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
466 |
Tree: $INSTALL_TREE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
467 |
ISO: $INSTALL_ISO |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
468 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
469 |
Preseed: |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
470 |
Name: $PRESEED_NAME |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
471 |
Template: $PRESEED_TEMPLATE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
472 |
Target: $PRESEED_FILE |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
473 |
Isolinux: $PRESEED_ISOLINUX |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
474 |
Includes: $PRESEED_INCLUDES |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
475 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
476 |
END |
9 | 477 |
fi |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
478 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
479 |
[ $TESTING ] && exit 0 |
0 | 480 |
|
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
481 |
### Check |
8 | 482 |
# Parameters given? |
483 |
[ -z $NET_IPADDR ] && die "net: No IP-address given: ip" |
|
484 |
||
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
485 |
# Installer exists? |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
486 |
if cmd test ! -f ${INSTALLER_ISO}; then |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
487 |
die "Installer not found: ${INSTALLER_ISO}" |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
488 |
fi |
0 | 489 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
490 |
### Prepare install |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
491 |
## Extract .iso |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
492 |
if [ -f ${INSTALLER_FLAG} ]; then |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
493 |
log_info "Installer already unpacked: ${INSTALLER_TREE}" |
1
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 |
else |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
496 |
log_info "Unpacking installer: ${INSTALLER_ISO}" |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
497 |
cmd extract_iso ${INSTALLER_ISO} ${INSTALLER_TREE} |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
498 |
cmd touch ${INSTALLER_FLAG} |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
499 |
fi |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
500 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
501 |
# 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
|
502 |
[ -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
|
503 |
cmd cp -rd ${INSTALLER_TREE} ${INSTALL_TREE} |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
504 |
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
|
505 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
506 |
log_info "Installer extracted: $INSTALL_TREE" |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
507 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
508 |
## Customize preseed |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
509 |
cmd expand_template ${PRESEED_TEMPLATE} ${PRESEED_FILE} |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
510 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
511 |
# md5sum |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
512 |
PRESEED_CHECKSUM=$(my_md5sum $PRESEED_FILE) |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
513 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
514 |
# Isolinux .cfg |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
515 |
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
|
516 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
517 |
# Others |
14
4154c64c5d69
parametrize packages/include/late_command; add puppet=yes support
Tero Marttila <terom@fixme.fi>
parents:
13
diff
changeset
|
518 |
for file in ${PRESEED_INCLUDE_FILES[@]}; do |
1
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
519 |
name=$(basename $file) |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
520 |
|
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
521 |
cmd expand_template $file ${INSTALL_TREE}/${name} |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
522 |
done |
51b1db97f448
yay customized preseeds + functional pkvlm-create
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
523 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
524 |
log_info "Preseed generated: $PRESEED_FILE" |
0 | 525 |
|
15 | 526 |
# Files |
527 |
log_info "Copy preseed-files"... |
|
528 |
cmd expand_tree ${CONF_FILES_SOURCE} ${CONF_FILES_TARGET} |
|
529 |
||
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
530 |
## Create .iso |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
531 |
[ -f ${INSTALL_ISO} ] && cmd rm -f ${INSTALL_ISO} |
0 | 532 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
533 |
# generates a lot of output |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
534 |
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
|
535 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
536 |
log_info "Install ISO generated: $INSTALL_ISO" |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
537 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
538 |
### Create virtual machine |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
539 |
if [ $DO_VIRTINSTALL ]; then |
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
|
540 |
## 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
|
541 |
# 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
|
542 |
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
|
543 |
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
|
544 |
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
|
545 |
|
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
546 |
## Disk |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
547 |
# Create LV (unless it already exists) |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
548 |
[ -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
|
549 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
550 |
## SELinux? |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
551 |
#$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
|
552 |
#$RESTORECON -v $DISK |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
553 |
|
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
554 |
## virt-install |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
555 |
cmd_confirm $VIRT_INSTALL \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
556 |
--connect $LIBVIRT \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
557 |
--name $GUEST_NAME \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
558 |
--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
|
559 |
--cdrom "$INSTALL_ISO" \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
560 |
--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
|
561 |
--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
|
562 |
--network bridge:$NET_BRIDGE \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
563 |
--virt-type $LIBVIRT_TYPE \ |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
564 |
--accelerate --hvm \ |
16
d74646c0b5dd
bootstrap serial console (grub, kernel args, inittab)
Tero Marttila <terom@fixme.fi>
parents:
15
diff
changeset
|
565 |
--vnc \ |
7
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
566 |
--serial pty |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
567 |
fi |
ab661ceed4dc
pkvlm-create: logging and command-line options
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
568 |