サーバーを設定していると対話型になるところがあるけど、それを文章化するのも面倒だし、スクリーンショットを撮るのも面倒だし、何よりも自動化できないので、可能な限りコマンドだけで設定を完了しておきたい。
コマンドで各種設定をする
環境は Ubuntu 14.04
。
インストールするアプリの都合で今回はこのバージョンを使っている。
ホスト名
ホスト名の変更と hosts
の書き換え。
export HOSTNAME=example.jp
hostname $HOSTNAME
sed -i "s/^\(127\.0\.0\.1.\+localhost\)/\1 $HOSTNAME/" /etc/hosts
エディタ
デフォルトエディタの設定を変更する。
エディタは nano
よりも vim
の方が好み。
sudo update-alternatives --set editor /usr/bin/vim.basic
対話形式でエディタを選択したい場合はこうする。
sudo update-alternatives --config editor
タイムゾーン
sudo sh -c 'echo "Asia/Tokyo" > /etc/timezone'
sudo dpkg-reconfigure -f noninteractive tzdata
対話形式でタイムゾーンを選択したい場合はこうする。
sudo dpkg-reconfigure tzdata
NTP
sudo cp /etc/ntp.conf /etc/ntp.conf.org
sudo sed -i "s/^\(server\) \(.*\)/\1 ntp.nict.jp/" /etc/ntp.conf
server 1.time.constant.com
server 2.time.constant.com
server 3.time.constant.com
上記が次のようになる。
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp
MySQL
export MYSQLPW=INPUT_PASSWORD
echo "mysql-server mysql-server/root_password password $MYSQLPW" | sudo debconf-set-selections
echo "mysql-server mysql-server/root_password_again password $MYSQLPW" | sudo debconf-set-selections
sudo apt-get -y install mysql-server
sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.org
sudo sed -i "/\[mysqld\]/i default-character-set=utf8\n" /etc/mysql/my.cnf
sudo sed -i "/\[mysqldump\]/i character-set-server=utf8\n" /etc/mysql/my.cnf
sudo sed -i "/\[mysql\]/i default-character-set=utf8\n" /etc/mysql/my.cnf
debconf-set-selections
を設定せずに mysql
をインストールするとrootのパスワードを聞かれる。
Supervisor
Supervisor用の設定ファイルもコマンドで作成。
Supervisorにかぎらず、ファイルを作成する場合に使える。
sudoにコマンドを渡したいときは sudo sh -c "command"
とするとパイプなども期待通りに使える。
sudo sh -c "cat <<EOF > /etc/supervisor/conf.d/xvfb.conf
[program:xvfb]
priority=1
user=MYAPP
command=Xvfb :1 -screen 0 800x600x24
autostart=true
autorestart=true
directory=/opt/visionect
stdout_logfile=/var/log/xvfb-stdout.log
stderr_logfile=/var/log/xvfb-stderr.log
EOF"
sudo supervisorctl reread
sudo supervisorctl add xvfb
sudo supervisorctl status
Supervisor用の設定ファイルを作成したら、読み込ませることを忘れずに。