Остання активність 6 months ago

Версія a78bbfe1ae88bccd7f4b0fe948735464ced1c0a1

jessie2stretch.sh Неформатований
1Please also refer to http://www.debian.org/releases/stretch/releasenotes and use your brain!
2
3
4# upgrade to UTF-8 locales (http://www.debian.org/releases/stretch/amd64/release-notes/ap-old-stuff.en.html#switch-utf8)
5dpkg-reconfigure locales
6
7# remove unused config file
8rm -rf /etc/network/options /etc/environment
9
10# Transition and remove entries from older releases
11sed -i /etch/d /etc/apt/sources.list*
12sed -i /lenny/d /etc/apt/sources.list*
13sed -i /sarge/d /etc/apt/sources.list*
14sed -i /squeeze/d /etc/apt/sources.list*
15sed -i /wheezy/d /etc/apt/sources.list*
16sed -i /volatile/d /etc/apt/sources.list*
17sed -i /proposed-updates/d /etc/apt/sources.list*
18# change distro (please move 3rd party sources to /etc/apt/sources.list.d/), maybe look into http://ftp.cyconet.org/debian/sources.list.d/
19sed -i s/jessie/stretch/g /etc/apt/sources.list*
20sed -i "s/ stable/ stretch/g" /etc/apt/sources.list*
21sed -i s/jessie/stretch/g /etc/apt/preferences*
22sed -i s/jessie/stretch/g /etc/apt/sources.list.d/*jessie*
23rename s/jessie/stretch/g /etc/apt/sources.list.d/*jessie*
24aptitude update
25
26# check package status
27dpkg --audit
28aptitude search "~ahold" | grep "^.h"
29dpkg --get-selections | grep hold
30
31# unmark packages auto
32aptitude unmarkauto vim
33aptitude unmarkauto monitoring-plugins-standard monitoring-plugins-common monitoring-plugins-basic
34aptitude unmarkauto open-vm-tools-dkms ifenslave
35aptitude unmarkauto $(dpkg-query -W 'linux-image-3.16*' | cut -f1)
36
37# have a look into required and free disk space
38apt-get -o APT::Get::Trivial-Only=true dist-upgrade || df -h
39
40# record session
41script -t 2>~/upgrade-stretch.time -a ~/upgrade-stretch.script
42
43# install our preseed so libc doesn't whine
44cat > /tmp/stretch.preseed <<EOF
45libc6 glibc/upgrade boolean true
46libc6 glibc/restart-services string
47libc6 libraries/restart-without-asking boolean true
48EOF
49/usr/bin/debconf-set-selections /tmp/stretch.preseed
50
51# update aptitude first
52[ "$(which aptitude)" = "/usr/bin/aptitude" ] && aptitude install aptitude
53
54# migrate over to systemd
55aptitude install systemd
56
57# minimal system upgrade (keep sysvinit / see http://noone.org/talks/debian-ohne-systemd/debian-ohne-systemd-clt.html#%2811%29)
58aptitude upgrade
59
60# (re)enable wheel
61if [ -f /etc/pam.d/su.dpkg-new ]; then CFG=/etc/pam.d/su.dpkg-new; else CFG=/etc/pam.d/su; fi
62sed -i "s/# auth required pam_wheel.so/auth required pam_wheel.so/" $CFG
63
64# (re)configure snmpd
65COMMUNITY="mycommunity"; \
66if [ -f /etc/snmp/snmpd.conf.dpkg-new ]; then CFG=/etc/snmp/snmpd.conf.dpkg-new; \
67 else CFG=/etc/snmp/snmpd.conf; fi
68sed -i "s^#rocommunity secret 10.0.0.0/16^rocommunity $COMMUNITY^g" $CFG
69sed -i s/#agentAddress/agentAddress/ $CFG
70sed -i "s/^ rocommunity public/# rocommunity public/" $CFG
71sed -i "s/^ rocommunity6 public/# rocommunity6 public/" $CFG
72sed -i "s/agentAddress udp:127/#agentAddress udp:127/" $CFG
73
74## fix our xen modification
75#rm -rf /etc/grub.d/09_linux_xen
76#dpkg-divert --divert /etc/grub.d/09_linux_xen --rename /etc/grub.d/20_linux_xen
77
78# chrony update
79if [ -f /etc/chrony/chrony.conf.new ]; then CFG=/etc/chrony/chrony.conf.new; else CFG=/etc/chrony/chrony.conf; fi
80sed -i s/debian.pool/de.pool/g $CFG
81
82# randomize crontab
83if [ -f /etc/crontab.dpkg-new ]; then CFG=/etc/crontab.dpkg-new; else CFG=/etc/crontab; fi
84sed -i 's#root cd#root perl -e "sleep int(rand(300))" \&\& cd#' $CFG
85sed -i 's#root\ttest#root\tperl -e "sleep int(rand(3600))" \&\& test#' $CFG
86
87## phpmyadmin
88#if [ -f /etc/phpmyadmin/config.inc.php.dpkg-new ]; then CFG=/etc/phpmyadmin/config.inc.php.dpkg-new; \
89# else CFG=/etc/phpmyadmin/config.inc.php; fi
90#sed -i "s/\['auth_type'\] = 'cookie'/\['auth_type'\] = 'http'/" $CFG
91#sed -i "s#//\$cfg\['Servers'\]\[\$i\]\['auth_type'\] = 'http';#\$cfg['Servers'][\$i]['auth_type'] = 'http';#" $CFG
92
93# maybe we want to change some shorewall config stuff again
94# shorewall needs to be enabled via systemctl, /etc/default is not used by systemd
95systemctl enable shorewall
96
97# full-upgrade
98aptitude full-upgrade
99
100# Upgrade postgres
101if [ "$(dpkg -l | grep "postgresql-9.4" | awk {'print $2'})" = "postgresql-9.4" ]; then \
102 aptitude install postgresql-9.6 && \
103 pg_dropcluster --stop 9.6 main && \
104 /etc/init.d/postgresql stop && \
105 pg_upgradecluster -v 9.6 9.4 main && \
106 sed -i "s/^manual/auto/g" /etc/postgresql/9.6/main/start.conf && \
107 sed -i "s/^port = .*/port = 5432/" /etc/postgresql/9.6/main/postgresql.conf && \
108 sed -i "s/^shared_buffers = .*/shared_buffers = 128MB/" /etc/postgresql/9.6/main/postgresql.conf && \
109 /etc/init.d/postgresql restart; \
110fi
111pg_dropcluster 9.4 main
112
113# xen: use our own bridge script again, when we did before
114#[ $(grep "^(vif-script vif-bridge-local" /etc/xen/xend-config.sxp | wc -l) -gt 0 ] && \
115# sed -i 's/#vif.default.script="vif-bridge"/vif.default.script="vif-bridge-local"/' /etc/xen/xl.conf
116
117# remove old squeeze packages left around (keep eyes open!)
118apt-get autoremove
119aptitude search ?obsolete
120dpkg -l | grep etch | grep -v xen | grep -v unbound | grep -v finch | awk '{print $2}' | xargs aptitude -y purge
121dpkg -l | grep lenny | grep -v xen | awk '{print $2}' | xargs aptitude -y purge
122dpkg -l | grep -E 'deb6|squeeze' | grep -v xen | awk '{print $2}' | xargs aptitude -y purge
123dpkg -l | grep -E 'deb7|wheezy' | grep -v xen | grep -v -E 'linux-image|mailscanner|openswan|debian-security-support' | awk '{print $2}' | xargs aptitude -y purge
124dpkg -l | grep -E 'deb8|jessie' | grep -v xen | grep -v -E 'linux-image|debian-security-support' | awk '{print $2}' | xargs aptitude -y purge
125aptitude -y install deborphan && deborphan | grep -v xen | grep -v libpam-cracklib | xargs aptitude -y purge
126dpkg -l | grep ^r | awk '{print $2}' | xargs aptitude -y purge
127
128# for the brave YoloOps crowd
129reboot && sleep 180; echo u > /proc/sysrq-trigger ; sleep 2 ; echo s > /proc/sysrq-trigger ; sleep 2 ; echo b > /proc/sysrq-trigger
130
131### not needed until now
132# mysql
133# remove anonymous mysql access
134#mysql -u root -p -e "DELETE FROM mysql.user WHERE User=''; DELETE FROM mysql.db WHERE Db='test' AND Host='%' OR Db='test\\_%' AND Host='%'; FLUSH PRIVILEGES;"
135
136# dont use iptables when creating xen vifs
137#cp /etc/xen/scripts/vif-bridge /etc/xen/scripts/vif-bridge-local
138#sed -i "s/^ handle_iptable/ true/g" /etc/xen/scripts/vif-bridge-local
139#sed -i "s/^(vif-script vif-bridge)/(vif-script vif-bridge-local)/" /etc/xen/xend-config.sxp
140
141# xen
142#/bin/sed -i -e 's/^[# ]*\((dom0-min-mem\).*\().*\)$/\1 512\2/' /etc/xen/xend-config.sxp
143#sed -i s/XENDOMAINS_RESTORE=true/XENDOMAINS_RESTORE=false/ /etc/default/xendomains
144#sed -i s#XENDOMAINS_SAVE=/var/lib/xen/save#XENDOMAINS_SAVE=\"\"# /etc/default/xendomains
145#dpkg-divert --divert /etc/grub.d/09_linux_xen --rename /etc/grub.d/20_linux_xen
146#echo 'GRUB_CMDLINE_XEN="dom0_mem=512M"' >> /etc/default/grub
147
148# migrate expose.ini
149#[ -f /etc/php5/conf.d/expose.ini ] && mv /etc/php5/conf.d/expose.ini \
150# /etc/php5/mods-available/local-expose.ini && php5enmod local-expose/90
151# migrate local suhosin config
152#find /etc/php5/conf.d/ -type f -name "*suhosin.ini" -exec mv '{}' \
153# /etc/php5/mods-available/local-suhosin.ini \; && php5enmod local-suhosin/90
154