LoginSignup
1
0

More than 5 years have passed since last update.

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

Posted at

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

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 "+------------------------------------------------------------------------------------------------------------+";

1
0
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
1
0