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