6
5

More than 5 years have passed since last update.

Ubuntu Serverをセットアップする

Posted at

公開鍵を登録する

ssh-copy-idを使うのが楽。

ローカル
ssh-copy-id ubuntu-server-10.04

GitHubにサーバの公開鍵を登録

リモート
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub

セットアップ・スクリプトを走らせる

setup-ubuntu-server.sh
#!/bin/sh

echo 'Refresh packages'
dpkg -l > default_packages
sudo apt-get update
sudo apt-get upgrade

echo 'Install tools'
sudo apt-get install -y screen zsh git-core curl wget

echo 'Clone dotfiles from GitHub'
mkdir -p $HOME/works
git clone --recursive git@github.com:aereal/dotfiles.git $HOME/works/dotfiles

echo 'Make dotfiles symlink on $HOME'
for f in \
  .gemrc .gitconfig .gitignore .irssi .proverc \
  .pryrc .psqlrc .re.pl .screen .screenrc \
  .zsh.d .zshrc .zshenv; do
  ln -s $HOME/works/dotfiles/$f $HOME/
done

echo 'Change default shell to zsh'
chsh -s `which zsh`

echo 'Install rbenv'
curl -L https://raw.github.com/fesplugas/rbenv-installer/master/bin/rbenv-installer | bash

export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init -)"

echo 'Install dependencies'
rbenv bootstrap-ubuntu-10-04

echo 'Install Ruby 1.9.3 p194'
CONFIGURE_OPTS=--enable-shared rbenv install 1.9.3-p194
rbenv rehash; rehash

echo 'Update gems'
gem update --system
gem update

echo 'Install Bundler'
gem install --pre bundler

  • 次のパッケージをインストール
    • zsh
    • screen
    • git-core
    • curl
    • wget
  • dotfilesをcloneしてきてsymlinkをはる
    • サブモジュールもinit && update
  • ログインシェルをzshに
  • rbenvをインストール
  • rbenvでRubyのインストールに必要なライブラリをインストール (bootstrap-ubuntu-10-04)
  • Ruby 1.9.3p194をインストール
  • RubyGemsとプリインストールされているgemをアップデート
  • Bundlerをインストール
ローカル
scp setup-ubuntu-server.sh ubuntu-server-1004:
ssh -t ubuntu-server-1004 'sh setup-ubuntu-server.sh'

どうして自動化したがるの?

zsh以外のシェルを使おうとは思っていない (慣れの問題)。
しかしzshをインストールするまで、インタラクティヴシェル上でコマンドを入力した場合、zshのヒストリに残らない。
ヒストリは財産であるので、失われるのは渡し難い。

そこで操作を記録、永続化するためにシェルスクリプトを用いる。
できるだけローカルから ssh-copy-idscp などを駆使して、どこかしらのzshのヒストリに残るようにする。

chef-soloなどのツールもあるが、大袈裟すぎるのとそれら自体をインストールするためにけっきょく他の手段を使わなければいけないため、最初からシェルスクリプトのみを用いることに。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5