レポジトリー含めてGitのリモートサーバをシェルで一発で設定する方法

下記のシェルの上部の定数を調整してから実行して下さい。

USER_NAME：作業ユーザー名
USER_PW：作業ユーザー名のパスワード
REPOSITORY：レポジトリ名


```
#!/bin/bash

echo "＋------------------------------------------------------------------------------------------------------------＋";
echo "■setup start " ${0};
echo "＋------------------------------------------------------------------------------------------------------------＋";

readonly USER_NAME="gituser"
readonly USER_PW="user"
readonly REPOSITORY="test"

echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■";
echo "アップデート" ;
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■";
sudo yum -y update


echo ;
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
echo "【git-2.X.X インストール】";
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";

# 定数設定
URL_GIT="https://www.kernel.org/pub/software/scm/git/git-2.4.0.tar.gz"

echo "【アンストール git】"
sudo yum -y remove git

echo "【確認 git アンストール】"
git --version


echo "【ファイル取得 git-2.X.X.tar.gz】"
cd ~/
sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
wget $URL_GIT
tar zxvf git-*.tar.gz
rm -rf git-*.tar.gz

echo "【コンパイル】"
cd git-*
sudo make prefix=/usr/local all
sudo make prefix=/usr/local install

echo "【シンボリックリンク】"
sudo ln -s /usr/local/bin/git /usr/bin/git

echo "【不要ファイル削除】"
rm -rf git-*

echo "【確認 git インストール】"
git --version


echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■";
echo "gituserの作成と.sshディレクトリの作成など" ;
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■";
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
echo "【インストール expect】";
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";

sudo yum install -y expect

echo ;
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
echo "【$USER_NAMEの追加】";
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
sudo useradd $USER_NAME
sudo expect -c "
set timeout 5
spawn passwd $USER_NAME
expect \"New password:\"
send -- \"$USER_PW\n\"
expect \"Retype new password:\"
send -- \"$USER_PW\n\"
expect \"passwd: all authentication tokens updated successfully.\"
send -- \"exit\n\"
"


echo ;
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
echo "【$USER_NAMEの確認】";
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
cat /etc/passwd | grep $USER_NAME

echo ;
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
echo "【.sshの設定】";
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
sudo mkdir /home/$USER_NAME/.ssh
sudo touch /home/$USER_NAME/.ssh/authorized_keys
sudo chown $USER_NAME. /home/$USER_NAME/.ssh
sudo chown $USER_NAME. /home/$USER_NAME/.ssh/authorized_keys
sudo chmod 700 /home/$USER_NAME/.ssh
sudo chmod 600 /home/$USER_NAME/.ssh/authorized_keys


echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
echo "【.sshの確認】";
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
ls -la /home/$USER_NAME/.ssh /home/$USER_NAME/.ssh/authorized_keys


echo ;
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
echo "【リポジトリディレクトリ作成】";
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
su - $USER_NAME -c "mkdir -p ~/repos/$REPOSITORY.git"
su - $USER_NAME -c "cd ~/repos/$REPOSITORY.git"
su - $USER_NAME -c "git --bare init"



echo ;
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
echo "【リポジトリディレクトリの確認】";
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
su - $USER_NAME -c 'ls -la ~/repos/'


echo ;
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
echo "【コンフィグファイル(/etc/my.cnf)の設定】";
echo "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□";
# echo "authorized_keysの編集";
# su - $USER_NAME -c 'vi /home/$USER_NAME/.ssh/authorized_keys'


echo "＋------------------------------------------------------------------------------------------------------------＋";
echo "■setup end";
echo "＋------------------------------------------------------------------------------------------------------------＋";

```