【FreeBSD】Jail環境の作成を自動化してみた(qjail版)
概要
以前、ezjailを使用したJail環境構築スクリプトを作成しましたが、そのqjail版を作成しました。 前回:【FreeBSD】Jail環境の作成を自動化してみた - くんすとの備忘録そもそも、ezjailもqjailもJail環境の構築を簡単に行うためのものですが、それに加えて
- ルートのパスワード設定
- デフォルトユーザーの登録
前提条件
スクリプト中で「sudo qjail」と「sudo jexec」をしてます。 suもsudoもしないでqjailを使いたい - くんすとの備忘録 に書いた設定を行っている前提です。
スクリプト
create_jail.sh
This file contains hidden or 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/sh | |
USAGE(){ | |
cat <<++EOS >&2 | |
USAGE:`basename $0` jail_name ip_address flavor [ -y root_password default_user default_user_password ] | |
++EOS | |
} | |
# Const | |
NIC=em1 | |
if [ "_$3" = "_" ] ; then | |
USAGE | |
exit 9 | |
fi | |
jail_name=$1 | |
ip_address=$2 | |
flavor=$3 | |
if [ "_$4" = "_-y" ] ; then | |
if [ "_$7" = "_" ] ; then | |
USAGE | |
exit 9 | |
fi | |
is_silent=$4 | |
root_password=$5 | |
default_user=$6 | |
default_user_password=$7 | |
else | |
is_silent="" | |
echo -n "Input root password: " | |
read root_password | |
echo -n "Input default username: " | |
read default_user | |
echo -n "Input default user password: " | |
read default_user_password | |
fi | |
cat <<++EOS | |
I will create a Jail with the following. | |
jail_name :${jail_name} | |
ip_address :${ip_address} | |
flavor :${flavor} | |
root_password :${root_password} | |
default_user :${default_user} | |
default_user_password:${default_user_password} | |
++EOS | |
if [ "${is_silent}" != "-y" ] ; then | |
echo -n 'create? [y/n]: ' | |
read YN | |
if [ "$YN" != "y" -a "$YN" != "yes" ]; then | |
exit 9 | |
fi | |
fi | |
echo | |
echo "########### SETUP START ###########" | |
set -v | |
# create Jail | |
sudo qjail create -n $NIC -4 $ip_address -f $flavor $jail_name | |
sudo qjail config -k $jail_name | |
sudo qjail start $jail_name | |
# user settings | |
sudo jexec $jail_name sh -c "echo ${root_password} | pw usermod -n root -h 0" | |
sudo jexec $jail_name sh -c "echo ${default_user_password} | pw useradd -n ${default_user} -G wheel -m -h 0" | |
set +v | |
echo "########### SETUP END ###########" |
使い方の例
|
|