-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathubuntu_init.sh
146 lines (124 loc) · 4.59 KB
/
ubuntu_init.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!/usr/bin/env bash
# all commands executed from 'root' => 'sudo su' before use
# wget -q https://raw.githubusercontent.com/Stikus/Scripts/master/ubuntu_init.sh AKA http://tiny.cc/stik_ubuntu
MAINUSER="bio"
BASHRC="/home/$MAINUSER/.bashrc"
# swapfile settings
swapoff /swapfile
rm /swapfile
touch /swapfile
chmod 600 /swapfile
dd if=/dev/zero of=/swapfile bs=1M count=8192 oflag=append conv=notrunc
mkswap /swapfile
swapon /swapfile
export DEBIAN_FRONTEND="noninteractive"
apt-get update && apt-get --yes upgrade && apt-get --yes --no-install-recommends install \
build-essential \
pkg-config \
python3-dev \
python3-testresources \
software-properties-common \
ncurses-dev \
curl \
wget \
time \
tzdata \
gawk \
bzip2 \
pigz \
zip \
unzip \
pigz \
xz-utils \
mc \
parallel \
htop \
iotop \
git-core \
ssh \
openssh-client \
openssl \
libssl-dev \
libyaml-dev \
zlib1g-dev \
libbz2-dev \
liblzma-dev \
libffi-dev \
libxml2-dev \
libxslt1-dev \
libpq-dev \
qemu-guest-agent \
cifs-utils \
xfsprogs \
nfs-common \
nfs-kernel-server \
tree \
ntp \
tmux \
ceph-common
systemctl start ntpd
systemctl enable ntpd
export TZ="Europe/Moscow"
rm /etc/localtime \
&& echo "$TZ" > /etc/timezone \
&& dpkg-reconfigure tzdata
# docker - https://docs.docker.com/engine/install/ubuntu/
apt-get --yes --no-install-recommends install \
apt-transport-https \
ca-certificates \
gpg-agent \
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
&& echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt-get update \
&& apt-get --yes --no-install-recommends install docker-ce
# Docker sertificate
wget -q -nd -r "ftp://bioftp.cspfmba.ru/certs/*crt" -P /usr/local/share/ca-certificates/csp-certs \
&& update-ca-certificates \
&& systemctl restart docker.service
# Add user 'MAINUSER' to 'docker' group
usermod -a -G docker "$MAINUSER"
# pip3
curl -s https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
&& python3 get-pip.py --force-reinstall \
&& rm get-pip.py
# pip3 install 'setuptools<58'
pip3 install --upgrade psutil
# gcc
apt-get -y --no-install-recommends install \
g++-7 \
gcc-7
# java8
apt-get --yes --no-install-recommends install openjdk-8-jdk
export _JAVA_OPTIONS="-Djava.io.tmpdir=$TMPDIR" \
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
echo 'export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"' >> "$BASHRC"
# cwltool
pip3 install 'cwltool==3.1.20221018083734'
# Shellcheck 0.9.0
wget -q "https://github.com/koalaman/shellcheck/releases/download/v0.9.0/shellcheck-v0.9.0.linux.x86_64.tar.xz" -O "shellcheck-v0.9.0.linux.x86_64.tar.xz" \
&& tar -xJf "shellcheck-v0.9.0.linux.x86_64.tar.xz" \
&& mv shellcheck-v0.9.0/shellcheck /usr/local/bin \
&& rm "shellcheck-v0.9.0.linux.x86_64.tar.xz" \
&& rm -r shellcheck-v0.9.0/
# memUsage #6c2474a [v0.2.0 02.09.2019]
# psutil >= 2.2.1 (Tested with 5.6.1 - ok; 1.2.1 - err) - additional python package required for memUsage.
wget -q "https://raw.githubusercontent.com/serge2016/memUsage/6c2474a6879eecc544dfd5a68e2ffc2d98ead014/memUsage.py" -O - | tr -d '\r' > "/usr/local/bin/memUsage.py" \
&& chmod +x "/usr/local/bin/memUsage.py"
export MEMUSAGE="/usr/local/bin/memUsage.py"
echo 'export MEMUSAGE="/usr/local/bin/memUsage.py"' >> "$BASHRC"
export SOFT="/home/$MAINUSER/soft"
echo 'export SOFT="/home/'$MAINUSER'/soft"' >> "$BASHRC"
mkdir -p "$SOFT"
# cmake 3.24.2
cd "$SOFT" \
&& wget -q "https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-linux-x86_64.sh" -O "$SOFT/cmake-3.24.2-linux-x86_64.sh" \
&& sh "$SOFT/cmake-3.24.2-linux-x86_64.sh" --prefix="$SOFT" --include-subdir --skip-license \
&& rm "$SOFT/cmake-3.24.2-linux-x86_64.sh"
export PATH="$SOFT/cmake-3.24.2-linux-x86_64/bin:$PATH"
echo 'export PATH="$SOFT/cmake-3.24.2-linux-x86_64/bin:$PATH"' >> "$BASHRC"
# Add GKS Server pub RSA-key
sudo -Hu "$MAINUSER" bash -c 'mkdir -p -m 700 "$HOME/.ssh" && wget -q "ftp://bioftp.cspfmba.ru/certs/keys/GKS_Server_id_rsa.pub" -O ->> "$HOME/.ssh/authorized_keys" && chmod 600 "$HOME/.ssh/authorized_keys"'
# Add tmux config with mouse enabled
sudo -Hu "$MAINUSER" bash -c 'wget -q "ftp://bioftp.cspfmba.ru/certs/keys/.tmux.conf" -O "$HOME/.tmux.conf"'
# Final updates
# apt-get update && apt-get -y dist-upgrade