tokyodebianのwebサイト、原稿システムのsalsa移行
目的
- aliothが2018/5に廃止となるため、新しいサービスのsalsaへリポジトリ、原稿システムを移転する
salsaのリポジトリの構造
https://salsa.debian.org/tokyodebian-team
- meetinglog
- IRCミーティングの議事録
- monthly-report
- 主にtex形式の原稿ファイル(odpなどもあります)
- スライドファイルや配布資料
- tokyodebian-team.pages.debian.net
- gitlab pagesの機能でhtmlを配置してweb公開している
pdf
これは移行作業途中のワーク用でした。現在"pdf.old"に名前変更し、まだ残しています。
最終的に削除する予定です
gitlab pagesで公開すると、"https://tokyodebian-team.pages.debian.net/pdf/" となることから、pdfファイルをここのリポジトリにコミットしようと画策。
- CIで生成するファイルサイズの上限にひっかかるため、後述の"pdfYYYY"へ分割することにした
- pdf2005 - pdf2018
- monthly-reportのtexをビルドして生成したpdfファイル
- 毎年増えます
- gitlab pagesの機能でpdfを配置してweb公開する
- pdfyyyy
- 上記の"pdf2018"リポジトリのテンプレート
- html2005 - html2018
- monthly-reportのtexをビルドして生成したhtmlファイル
- 毎年増えます
- gitlab pagesの機能でhtmlを配置してweb公開する
- htmlyyyy
- 上記の"html2018"リポジトリのテンプレート
- meetinglog
改修作業一覧
(done) aliothからsalsaへリポジトリのインポート
(done) muse -> tokyodebian-team.pages.debian.net
(done) monthly-report-> monthly-report
(done) meetinglog-> meetinglog
(done) tokyodebian-team.pages.debian.netの修正
(done) CI設定
(done)museファイルのビルドに必要なパッケージをインストールし、htmlを生成
(done)生成したファイルをgitlab pagesで公開する
(done) リンク先が"alioth"となっている静的ファイルのパスを移行先に書き換える
(done) pdf資料のリンクをpdfYYYYに修正
(done) html資料のリンクをpdfYYYYに修正
(done) meetinglogの参照リンクをsalsaのgitリポジトリの場所に書き換える
(done) 大きい静的ファイルを別サーバに配置変え
(done) etch-chroot-osc2008.tar.gz
(done) editing.museをsalsa版に修正する
(done) prework-update.museをsalsa版に修正する
(done) monthly-reportの修正
(done) CI処理
(done) 試した結果、status=413 Request Entity Too Large のエラーのため、gitlabのCIは処理なしとする。
(done) Makefileの"make publish"時の改修
(done) "pdfYYYY"、"htmlYYYY"のリポジトリへ手元のPCでビルドした生成物をcommit、pushする
(done) "pdfYYYY"、"htmlYYYY"のCIを実行するよう連携することで、原稿ファイルを公開する算段。
(done) pdfYYYYのCI設定
(done) publicディレクトリのファイルをgitlab pagesで配置する
(done) htmlYYYYのCI設定
(done) publicディレクトリのファイルをgitlab pagesで配置する
(done) meetinglogの修正
(done) ISO-2022-JP、EUC-JPになっているファイルをUTF-8に文字コードを変換する(rawファイルをwebブラウザで見ると文字化けするため)
aliothサーバのtokyodebianのファイルのアーカイブ取得
(done) 取得済
8e2031309777fc894f74fde4130c96a0570d96000676103ee2c2ea1e267f863b alioth-archive-htdocs_20180506.tar.xz
- 作業内容
- アーカイブするディレクトリ
- "/home/groups/tokyodebian/htdocs"
- アーカイブしないディレクトリ
- "/home/groups/tokyodebian/cgi-bin"。空でした。
- "/home/groups/tokyodebian/incoming"。空でした。
- "/home/groups/tokyodebian/log"。空でした。
- アーカイブするディレクトリ
alioth時代のハイパーリンク維持の作業
- alioth廃止後に、alioth時代の記事へのハイパーリンクの要求があったときに、salsaへ該当ページでリダイレクトする処理
- .htaccessにmod_rewriteの設定をつくる
- alioth(またはsalsa)の管理者に連絡して、.htaccessを置いてもらう
発生している問題と対処方法
- monthly-report.gitをCIしたときに、pdfファイル群が多すぎて容量オーバーし、CI処理でエラーとなる。
- ERROR: Uploading artifacts to coordinator... too large archive id=11633 responseStatus=413 Request Entity Too Large status=413 Request Entity Too Large token=5ydbgD39
- 【対処】"pdf"という一つのgitリポジトリでは容量オーバーのため、"pdfYYYY"というリポジトリをつくって分割してgitlab pagesで静的ファイルを公開する
- 【対処】"html"という一つのgitリポジトリでも容量オーバーのため、pdf同様に"htmlYYYY"というリポジトリをつくって分割してgitlab pagesで静的ファイルを公開する
CI/CDを処理するGitLab Runnerの設定
GitLab Runnerの説明
Configuring GitLab Runners https://docs.gitlab.com/ee/ci/runners/
Registering Runners https://docs.gitlab.com/runner/register/
GitLab Runnerの設定
- Dockerホストとするサーバを用意します。(仮想サーバでも可)
用意したサーバ上でGitLab Runnerをインストールします。
Install GitLab Runner manually on GNU/Linux https://docs.gitlab.com/runner/install/linux-manually.html
- 上記ドキュメントの手順の場合は、ダイアログ形式でパラメータを設定します。
- コマンドの引数に設定値を指定して実行すると、コマンド一発で設定を完了することもできます。
- インストールの途中でsalsaを指定するURLとトークンを入力する質問があります。
salsaの"設定"→"CI/CD"ページの"Runner"に、指定するURLとトークンが表示されますので、これを指定します。
- インストールの途中でexecutorを指定する質問が出てきます。
"docker"を指定すると、dockerを自動的にインストールしてくれます。
- インストールの途中でCI/CDで利用するDocker imageを指定する質問が出てきます。
Docker Hubでどのコンテナのベースイメージを使うかを指定するtagを設定してください。
- 例: debian:9
- これで、salsaの"設定"→"CI/CD"ページの"Runner"に表示されるようになります。
- 追加したRunnerの設定画面を開きます。(鉛筆マークをクリック)
Run untagged jobsの設定がデフォルトでは無効です。
- 無効の場合は、.gitlab-ci.ymlでtagsの指定がないCI/CDは実行されません。(そのため、Shared Runnerで実行されがち)
Run untagged jobsの設定を有効にします。
トラブルシュート
GitLab Runnerの設定を変えたいです。設定ファイルはどこですか。
- /etc/gitlab-runner/config.toml
- どのコンテナを使うかを指定するDocker Hubのtagはこのファイルに書かれています。
Shared RunnerでCI/CDが実行されてしまい、自分で追加したRunnerでCI/CDが実行されない。
- .gitlab-ci.ymlで"tags"の指定がないジョブは、"Run untagged jobs"が有効になっているRunnerでのみ実行されます。
- 自分で追加したSpecific RunnersやGroup Runnerは"Run untagged jobs"がデフォルトで無効になっています。
- Runnterの設定で"Run untagged jobs"の設定値を有効にするか、.gitlab-ci.ymlに"tags"を指定しましょう。