Created
December 11, 2019 13:42
-
-
Save mamemomonga/ee51cb05e99ef0fec6ca9789e7bc09bb to your computer and use it in GitHub Desktop.
Debian Busterセットアップスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -eu | |
# Build Essentialをインストールする | |
INSTALL_BUILD_ESSENTIAL=1 | |
# Dockerをインストールする | |
INSTALL_DOCKER=1 | |
if [ "$(id -u)" != 0 ]; then | |
echo "Please Run as root" | |
exit 1 | |
fi | |
# 新しいホスト名 | |
NEW_HOSTNAME=${1:-} | |
# EC2で動作しているか | |
IS_EC2=0 | |
if [ -f /sys/hypervisor/uuid ] && [ $(head -c 3 /sys/hypervisor/uuid) == ec2 ]; then IS_EC2=1; fi | |
# 起動完了まで待機する | |
if [ -d /var/lib/cloud ]; then | |
until [ -f /var/lib/cloud/instance/boot-finished ]; do | |
sleep 1 | |
done | |
fi | |
echo "*** START $0 ***" | |
if [ -n "${NEW_HOSTNAME:-}" ]; then | |
echo "*** NEW_HOSTNAME: $NEW_HOSTNAME ***" | |
fi | |
if [ $IS_EC2 == 1 ]; then | |
echo "*** RUNNING ON EC2 ***" | |
fi | |
export DEBIAN_FRONTEND=noninteractive | |
apt-get update | |
apt-get -y install \ | |
tzdata \ | |
git \ | |
curl \ | |
wget \ | |
vim \ | |
ntp \ | |
postfix \ | |
jq \ | |
sudo \ | |
dnsutils | |
if [ $INSTALL_BUILD_ESSENTIAL ]; then | |
apt-get -y install build-essential | |
fi | |
rm /etc/localtime | |
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime | |
echo 'Asia/Tokyo' > /etc/timezone | |
date | |
cat > /etc/vim/vimrc.local << 'EOS' | |
syntax on | |
set wildmenu | |
set history=100 | |
set number | |
set scrolloff=5 | |
set autowrite | |
set tabstop=4 | |
set shiftwidth=4 | |
set softtabstop=0 | |
set termencoding=utf-8 | |
set encoding=utf-8 | |
set fileencodings=utf-8,cp932,euc-jp,iso-2022-jp,ucs2le,ucs-2 | |
set fenc=utf-8 | |
set enc=utf-8 | |
EOS | |
update-alternatives --set editor /usr/bin/vim.basic | |
mv /etc/ntp.conf /etc/ntp.conf.orig | |
cat > /etc/ntp.conf << 'EOS' | |
driftfile /var/lib/ntp/drift | |
statistics loopstats peerstats clockstats | |
filegen loopstats file loopstats type day enable | |
filegen peerstats file peerstats type day enable | |
filegen clockstats file clockstats type day enable | |
restrict -4 default kod notrap nomodify nopeer noquery | |
restrict -6 default kod nomodify notrap nopeer noquery | |
restrict 127.0.0.1 | |
restrict ::1 | |
EOS | |
if [ $IS_EC2 == 1 ]; then | |
cat >> /etc/ntp.conf << 'EOS' | |
server 0.amazon.pool.ntp.org iburst | |
server 1.amazon.pool.ntp.org iburst | |
server 2.amazon.pool.ntp.org iburst | |
server 3.amazon.pool.ntp.org iburst | |
EOS | |
else | |
cat >> /etc/ntp.conf << 'EOS' | |
server ntp1.jst.mfeed.ad.jp iburst | |
server ntp2.jst.mfeed.ad.jp iburst | |
server ntp3.jst.mfeed.ad.jp iburst | |
EOS | |
fi | |
service ntp restart | |
sleep 10 | |
ntpq -p | |
sed -i.bak -e 's/^\(inet_protocols = all\)/#\1/' /etc/postfix/main.cf | |
echo 'inet_protocols = ipv4' >> /etc/postfix/main.cf | |
service postfix restart | |
if [ -n "${NEW_HOSTNAME:-}" ]; then | |
if [ -e /usr/bin/hostnamectl ]; then | |
hostnamectl set-hostname $NEW_HOSTNAME | |
if [ -e /etc/cloud/templates/hosts.debian.tmpl ]; then | |
echo "127.0.0.2 $NEW_HOSTNAME" >> /etc/cloud/templates/hosts.debian.tmpl | |
fi | |
fi | |
fi | |
if [ $INSTALL_DOCKER == 1 ]; then | |
curl https://get.docker.com/ | sh | |
fi | |
echo "*** FINISH $0 ***" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment