Eeeeeeeeeeeeeeeeeeeeeeek. ikiwiki turns :) into a smiley image
[mirror/dsa-wiki.git] / input / howto / new-machine.creole
1 == setup/integrate a new machine ==
2
3 Note: this has recently been changed to rely more on [[puppet|howto/puppet-setup]].  If stuff breaks fix it.
4
5
6 * install ssh if it isn't there already
7 {{{
8     apt-get install ssh
9 }}}
10
11 * make apt sane
12 {{{
13     echo 'Acquire::PDiffs "false";' > /etc/apt/apt.conf.d/local-pdiff
14     echo 'APT::Install-Recommends 0;' > /etc/apt/apt.conf.d/local-recommends
15 }}}
16
17 * sane locales: (make sure there is _no_ locale defined in /etc/environment and /etc/default/locale)
18 {{{
19    echo -n > /etc/environment
20    echo -n > /etc/default/locale
21 }}}
22
23 * make debconf the same on every host: - dialog, - high
24 {{{
25     apt-get install dialog &&
26     echo "debconf debconf/priority        select high" | debconf-set-selections &&
27     echo "debconf debconf/frontend        select Dialog" | debconf-set-selections
28 }}}
29
30 * unless we want to keep it:
31 {{{
32     dpkg -l postfix | grep '^ii  postfix' && (dpkg --purge postfix && rm /etc/aliases)
33 }}}
34
35 * setup [[puppet|howto/puppet-setup]]  (run the puppet client two or three times until things converge.)
36
37 * on draghi, add the host to /home/sshdist/.ssh/authorized_keys and generate.conf
38 (you want the host's rsa host key there: {{{cat /etc/ssh/ssh_host_rsa_key.pub}}})
39 {{{
40     : :: draghi :: && sudo vi /home/sshdist/.ssh/authorized_keys
41     : :: draghi :: && sudo vi /etc/userdir-ldap/generate.conf
42 }}}
43 * run generate, or wait until cron runs it for you
44 {{{
45     : :: draghi :: && sudo -u sshdist ud-generate
46 }}}
47
48 * fix nsswitch for ud fu.  (you might have to restart sshd here)
49 {{{
50     sed -i -e 's/^passwd:\[[:space:]]\+compat$/passwd:         compat db/;
51               s/^group:\[[:space:]]\+compat$/group:          db compat/;
52               s/^shadow:\[[:space:]]\+compat$/shadow:         compat db/' \
53         /etc/nsswitch.conf
54     (cd / && env -i /etc/init.d/ssh restart)
55 }}}
56
57 * install userdir-ldap
58 {{{
59     apt-get update && apt-get install userdir-ldap
60 }}}
61
62 * on the host, run ud-replicate
63 {{{
64     echo draghi.debian.org,draghi,db.debian.org,db,82.195.75.106,::ffff:82.195.75.106 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAy1mAS0xIOZH9OrJZf1Wv9qYORv5Z5fmpF0o8Y4IMdS+ZzTjN1Sl8M77jaFTJbumJNs+n2CMcX8CoMemQEPBoRe20a5t3dExPQ3c7FNU0z+WIVFbu/oTTkAWGp5gCDwF3pg2QxUjqYc0X4jpv6pkisyvisij6V/VJ5G1hsIMuKqrCKYyyyiJJytfzSfRrBx2QvB5ZWQxhYeSYDoLDvuF31qUy4TLZ/HR3qZQ1cBrP9dCh5d+GQxdY9LuO6zjlnSyU64GHkyjYt3p03AKG4plD7WHX01bD0DQQ/NOFVwFhOZ63mePyridPuqBMFW39jBf4jSsewV95RE5VbY04+MY4XQ== root@draghi >> /etc/ssh/ssh_known_hosts &&
65     ud-replicate
66 }}}
67
68 * check if it worked:
69 {{{
70     id weasel
71 }}}
72
73 * install debian.org which brings you shells and much other fun
74 {{{
75     apt-get install debian.org
76 }}}
77
78 * in /etc/ssh/sshd_config:
79 ** disable the DSA hostkey, so that it only does RSA
80 ** remove old host keys:
81 ** disable X11 forwarding
82 ** Tell it to use alternate authorized_keys locations
83 ** maybe link root's auth key there:
84 {{{
85     #| HostKey /etc/ssh/ssh_host_rsa_key
86     #| X11Forwarding no
87     #| AuthorizedKeysFile /etc/ssh/userkeys/%u
88     #| AuthorizedKeysFile2 /var/lib/misc/userkeys/%u
89
90     cd /etc/ssh/ && rm -f ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_key ssh_host_key.pub &&
91     mkdir -p /etc/ssh/userkeys && ln -s /root/.ssh/authorized_keys /etc/ssh/userkeys/root &&
92     sed -i -e 's/^HostKey.*_dsa_key/# &/;
93                s/^X11Forwarding yes/X11Forwarding no/;
94                $ a AuthorizedKeysFile /etc/ssh/userkeys/%u
95                $ a AuthorizedKeysFile2 /var/lib/misc/userkeys/%u' sshd_config &&
96     (cd / && env -i /etc/init.d/ssh restart)
97 }}}
98
99 * try to login using your user and ssh key.  you should get a homedir.
100
101 * try to become root using sudo.
102
103 * disable password auth with ssh (again: once you verified you can log in and become root using keys.)
104 {{{
105     #vi /etc/ssh/sshd_config
106     #  | PasswordAuthentication no
107
108     sed -i -e 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config &&
109     (cd / && env -i /etc/init.d/ssh restart)
110 }}}
111
112 * make ca-certificates sane:  (choose to *not* trust new certs, and we only want the spi cert activated)
113 {{{
114     echo "ca-certificates ca-certificates/trust_new_crts  select no" | debconf-set-selections
115     sed -i -e 's/^[^#!].*/!&/; s#^!spi-inc.org/spi-cacert-2008.crt#spi-inc.org/spi-cacert-2008.crt#' /etc/ca-certificates.conf
116     dpkg-reconfigure ca-certificates
117 }}}
118
119 * Add debian-admin@debian.org to root in /etc/aliases
120 {{{
121         if ! egrep '^root:' /etc/aliases > /dev/null; then
122                 echo "root: debian-admin@debian.org" >> /etc/aliases
123         elif ! egrep '^root:.*debian-admin@debian.org' /etc/aliases > /dev/null; then
124                 sed -i -e 's/^root: .*/&, debian-admin@debian.org/' /etc/aliases
125         fi
126         newaliases
127 }}}
128
129 * sane default editor
130 {{{
131     apt-get install vim && update-alternatives --set editor /usr/bin/vim.basic
132 }}}
133
134 * add to munin on spohr
135 {{{
136     : :: spohr :: && sudo vi /etc/munin/munin.conf
137 }}}
138
139 * if it is a HP Proliant, or has other management fu, read [[howto/ilo-https]]
140
141 * edit dedication into in $DSA-PUPPET/modules/debian-org/misc/local.yaml
142
143 * add to nagios
144
145 * add host to ldap: ud-host -a $USER -h ....
146
147 -- weasel, Wed, 04 Jun 2008 20:52:56 +0200