技術職員奮闘記

とある地方大学の技術職員をやってる「ぼっち」です。楽をするためにがんばるを目指して日々奮闘しております。本ブログは個人の意見であり、大学とは関係がありません。

Gogsの初期設定~サービス登録(自動起動)

前置き

前回の記事の続きです。
流れを知りたい場合は前回の記事からご覧ください。

目標

タイトルにもある通り、Gogsの初期設定とサービス登録(自動起動)を設定し、常時起きている状態にします。
これをしたらとりあえずはコミット等できるので、自分一人で使う分にはここまででもいいかな~とか思います。

流れ

Gogsの初期設定(ブラウザ)

前回の最後の手順で下記のように出ていると思います。

[ INFO]Listen: http://0.0.0.0:3000

この状態で、ブラウザを立ち上げ、アドレスバーに「http://localhost:3000」と入力しアクセス

以下の項目を修正し、インストールボタンをクリック。クリック後、エラーページっぽくなるけど気にしない。

  • データベース設定
    • パスワード:(MySQLで登録したパスワードを入力)
  • Gogsの全般設定
    • 実行ユーザ:gogs
    • ドメイン:gogs.sample.com(使っているサーバのものを指定してください。)
    • アプリケーションのURL:gogs.sample.com(使っているサーバのものを指定してください。)

正常に設定できたかどうか確認するためにブラウザで「http://gogs.sample.com:3000」にアクセスし、エラーっぽくないページが出てこればOKです。

ファイアウォールの設定

今度は他のPCからもアクセスできるようにファイアウォールで指定のポートを開けます。

$ sudo firewall-cmd --add-port=3000/tcp --zone=public --permanent
$ sudo systemctl restart firewalld

この状態でgogsのサーバー以外のPCから「http://gogs.sample.com:3000」にアクセスし、エラーが出なければ成功です。

Gogsをサービスとして登録

再起動のたびに./gogs webとか叩かないといけないのも運用的になしなので、自動で立ち上がるようにサービスに登録してしまいます。

サービスを登録するようのファイルをテンプレートからGogsサーバへコピー

$ pwd#カレントディレクト
/home/gogs/gogs
$ sudo cp ./scripts/systemd/gogs.service /etc/systemd/system/gogs.service

テンプレートだとユーザーとグループが異なるので、そこを修正。

$sudo vi /etc/systemd/system/gogs.service

以下の各行をそれぞれ修正

  • 15行目:User=git -> User=gogs
  • 16行目:Group=git -> Group=wheel
  • 17行目:WorkingDirectory=/home/git/gogs -> WorkingDirectory=/home/gogs/gogs
  • 18行目:ExecStart=/home/git/gogs/gogs web -> ExecStart=/home/gogs/gogs/gogs web
  • 20行目:Environment=USER=git HOME=/home/git -> Environment=USER=gogs HOME=/home/gogs

修正したサービスファイルを登録する

$ sudo systemctl enable gogs.service

再起動後、他のPCから「http://gogs.sample.com:3000」に対してアクセスができていれば完了

次回予告

URLに3000とかポート番号を指定するのはめんどくさいので、nginxを使い80で受けれるようするところをやりたいと思います!

GogsをCentos7にインストール with MySQL

前置き

自分だけで適当に使えるGitサーバーが欲しかったので、Gogs(Go Git Service)を構築。意外と日本語のサイトがなかったので、インストール手順と注意点のまとめを掲載。
ブログ最初の記事なので分かりにくいのはごめんなさい。今後のためにも指摘していただけると喜びます。

目標

Gogsをコマンド上で起動するところまで。次回以降、Gogsの初期設定、nginxでの80ポート受け、dockerでのGogs立ち上げなどに続きます。

流れ

  • 環境紹介
  • Gitのインストール
  • MySQLのインストール
  • Gogsのインストール

環境紹介

まっさらなCentOS7を用意しました。バージョンは以下の通り

$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

実行ユーザーはgogsを追加

$ useradd gogs
$ passwd gogs

gogsユーザーでsudoを実行できるようwheelグループへ追加

$ usermod -G wheel gogs

yum updateの実行とsudoの確認

$ sudo yum update

以降断りがなければgogsユーザーです。

Gitのインストール

GitのリポジトリサーバーなだけあってそもそものGitが必要。インストールは以下のコマンドのみ。

$ sudo yum install git

この記事を書いている時点で、Gitのバージョンは1.7.1以上が必須(サーバー・クライアント両方)とのこと。

MySQLのインストール

既存のMySQLを削除

$ sudo yum remove mariadb-libs
#フォルダも削除
$ sudo rm -rf /var/lib/mysql/

最新のMySQLをインストール

$ sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
$ sudo yum install mysql mysql-devel mysql-server mysql-utilities

MySQLの起動とサービスに登録

$ sudo systemctl start mysqld
$ sudo systemctl enable mysqld

rootパスワードの取得

$ grep 'temporary password' /var/log/mysqld.log

#出力されるやつ。root@localhost:より右側にあるやつがrootのパスワードになる
[Note] A temporary password is generated for root@localhost: R<Sq=DyWy6:k

MySQLの初期設定

$ mysql_secure_installation

#上で取得したパスワード(ここだとR<Sq=DyWy6:k)を入力
$ Enter password for user root:

#新しいパスワードを入力。
$ New password:
#以降、質問されるがyでOK。詳しくはググってください

Gogsで使うデータベースの作成

$ mysql -uroot -p
#設定したパスワードを入力
$ Enter password:*********
$ create database gogs;
$ exit

Gogsのインストール

バイナリの取得

#ダウンロードしてくる
$ wget https://dl.gogs.io/0.11.29/linux_amd64.tar.gz

#解凍
$ tar zxvf linux_amd64.tar.gz

#Gogsの起動
$ cd ./gogs/
$ ./gogs web

#カラフルな字で下のような文字列が出れば起動成功
[ INFO] Gogs 0.11.29.0727
[ INFO] Cache Service Enabled
[ INFO] Session Service Enabled
[ INFO] SQLite3 Supported
[ INFO] Run Mode: Development
[ INFO] Listen: http://0.0.0.0:3000