動かざることバグの如し

近づきたいよ 君の理想に

OpenVZのオレオレテンプレートを作成 Ubuntu編

前回はDebianで試したけど今回はUbuntuの自作テンプレートを作ってみる。ちなみに公式Wikiにも書いてある

用意

ここから公式テンプレートをダウンロードする。今回はubuntu-14.04-x86_64-minimal.tar.gzをダウンロードした

ダウンロード後起動してSSHにて以下実行

sources.listの編集

/etc/apt/sources.listを以下に変更

deb http://ubuntutym.u-toyama.ac.jp/ubuntu trusty main restricted universe
deb http://ubuntutym.u-toyama.ac.jp/ubuntu trusty-updates main restricted universe
deb http://ubuntutym.u-toyama.ac.jp/ubuntu trusty-security main restricted universe multiverse

そのあとにapt-get update apt-get upgrade

パッケージインストール

apt-get install -y sudo curl git bash-completion software-properties-common

ユーザーの追加

adduser thr3a
adduser thr3a sudo
adduser thr3a adm

aptの高速化とdebファイルを残さないようにする

echo 'force-unsafe-io' | sudo tee /etc/dpkg/dpkg.cfg.d/02apt-speedup > /dev/null
echo 'DPkg::Post-Invoke {"/bin/rm -f /var/cache/apt/archives/*.deb || true";};' | sudo tee /etc/apt/apt.conf.d/no-cache > /dev/null

タイムゾーンの変更

dpkg-reconfigure tzdata

ゴミ削除

> /var/log/messages; > /var/log/auth.log; > /var/log/kern.log; > /var/log/bootstrap.log; > /var/log/dpkg.log; > /var/log/syslog; > /var/log/daemon.log; > /var/log/apt/term.log; rm -f /var/log/*.0 /var/log/*.1 /var/log/*.gz

debキャッシュ削除

rm -rf /var/cache/apt/archives/*
apt-get clean

以上がSSHからやる作業 以降はOpenVZホスト側の作業

コンテナの停止

IDが777の場合 適宜読み替える

vzctl set 777 --ipdel all --save
rm -f /var/lib/vz/private/777/etc/hostname
vzctl stop 777

生成

cat << EOF > /tmp/excludes
.bash_history
lost+found
/dev/*
/mnt/*
/tmp/*
/proc/*
/sys/*
/usr/src/*
EOF
cd /var/lib/vz/private/777
tar --numeric-owner -zcf /var/lib/vz/template/cache/ubuntu-14.04-mod.tar.gz . -X /tmp/excludes

LAMP構成の場合

PHPの公式パッケージが古いので外部のを導入する

add-apt-repository ppa:ondrej/php5

もしPythonエラー出たら以下を実行

sudo locale-gen en_US.UTF-8
export LANG=en_US.UTF-8

インストール

apt-get install -y apache2 libapache2-mod-php5 php5 php5-curl php5-gd php-pear mysql-server php5-mysql