概要
gitリポジトリーの構築は可能になったので外部ネットワークからリポジトリーをクローンなどできるようにします。
ドメイン | hoge.com |
gitのドメイン | git.hoge.com |
として設定を進めていく。
ご自身のグローバルIPアドレスは確認しておきましょう。
ルーター側の設定
自身のルータの設定Webサイトにアクセスしてポートマッピングを行う。
自分はAterm WG1900HP2を利用しているので参考程度。
ご自身のgitリポジトリーのローカルIPアドレスに対してポート番号を設定します。
ここではgitリポジトリー構築でssh接続を行っているのでポート番号は22です。
NECはポート番号をWAN側とLAN側で変更できないみたいなのでどちらも同じです。
DNSレコード設定(お名前.com)
お名前.comの自身で取得したドメインを選択して「ネームサーバーの設定」から「DNS設定/転送設定」を選択
グローバルIPアドレスを固定していない場合
定期的にグローバルIPアドレスが変更されてそのたびにお名前.comのDNSを設定しなおさないといけないのはとても面倒です。なのでリポジトリーサーバから定期的にグローバルIPアドレスとお名前.comに登録したグローバルIPアドレスを比較して更新するようにします。
リポジトリーサーバーでシェルスクリプト(update-onamae-dns.sh)を書きます。
# 設定 update-onamae-dns.sh
domain="ドメイン名" # お名前.comで購入したドメイン名
onamecom_userid="ユーザー名" # お名前.comのユーザ名
onamaecom_passwd="パスワード" # お名前.comのパスワード
target_hostname="git" # 更新したいホスト名
target_domain="${domain}" # 更新したいドメイン名
dig_domain="${target_hostname}.${target_domain}"
# 現在のグローバルIPアドレスを取得
current_global_ip_addr=$(curl inet-ip.info)
# 現在、ドメイン名に紐づいているグローバルIPアドレスを取得
domain_ip_addr=`dig ${dig_domain} +short`
echo "check now ${current_global_ip_addr} dnss ${domain_ip_addr}"
# ドメイン名に紐づいているIPアドレスを更新
if [ "${current_global_ip_addr}" != "${domain_ip_addr}" ]; then
command_line="LOGIN\nUSERID:${onamecom_userid}\nPASSWORD:${onamaecom_passwd}\n.\nMODIP\nHOSTNAME:${target_hostname}\nDOMNAME:${target_domain}\nIPV4:${current_global_ip_addr}\n.\nLOGOUT\n.\n"
echo -e "${command_line}" | openssl s_client -connect ddnsclient.onamae.com:65010 -quiet
echo "更新をしました。${domain_ip_addr} => ${current_global_ip_addr}"
else
echo "更新は、必要ありませんでした。"
fi
cronで定期実行するので
crontab -e
どのような時間で実行するかを定義する
00 9 * * * シェルスクリプトのパス/update-onamae-dns.sh > ログを出力したい場合は指定/cron.log
この場合は毎日9:00に実行するようにしている。
終わりに
実際に外部ネットワークから自分のサーバーに構築したgitリポジトリーをクローンなどできるようになったら変な容量制限などなくなるので便利、だたプルリクエストやマージリクエストなどはないので個人製作で行うことになりそう。
コメント