第 164 回東京エリア Debian 勉強会

salsa と東京エリア debian 勉強会のWeb/原稿システムの仕組み
Norimitsu Sugimoto (杉本 典充)
dictoss@live.jp

2018-06-16

自己紹介

Norimitsu Sugimoto (杉本 典充)
dictoss@live.jp
Twitter: @dictoss
Debian 使って 15 年以上。sarge が testing の頃から使っている
仕事はソフトウェア開発者をやってますpython と Django の組み合わせで使うことが多いですアジェンダはじめに
東京エリア Debian 勉強会のシステム

salsa.debian.org
東京エリア Debian 勉強会の salsa のシステム
今後の課題とまとめ

勉強会のシステム

web サイト
原稿データ、スライドデータの tex の原稿システム
参加者申し込み「connpass」
DebianJP のメーリングリスト

salsa.
debian.
orgsalsa とは

salsa.debian.org
Debian プロジェクトが 2017 年から運用を開始したプロ
ジェクト管理サーバ
gitlab が動作している
Kubernetes(k8s) と連携した CI/CD 処理

alioth から salsa への移行

2003 年から alioth というサーバが稼働し、FusionForgeが動作2016 年頃から FusionForge の開発が滞る状況になる
alioth の将来をどうするか議論が始まる
Alioth Sprint 2017 で salsa 誕生2017 年 12 月 15 日に salsa のベータ運用が開始
2018 年 01 月 27 日に salsa の本運用が開始
2018 年 05 月 31 日に alioth 停止

salsa の利用の仕方

ドキュメント

https://wiki.debian.org/Salsa/
https://wiki.debian.org/Salsa/Doc
https://docs.gitlab.com/

アカウントの登録

Debian Developer
debian.org のメールアドレスでログイン可能
LDAP 連携している

Debian Developer 以外
https://signup.salsa.debian.org/ でアカウントを作成する
アカウントは、”-guest”という文字列が末尾につける必要あり

チームの作成

git リポジトリより前にまず「チーム」を作成する
チームの作成は、
https://signup.salsa.debian.org/ で作成可能
作成したチームのページの例
https://salsa.debian.org/tokyodebian-team

チームを作ったユーザは、初期設定でチームの Owner
権限を割り当てチームへのメンバの参加

チームをつくったあとは、協力してくれるメンバを増やしましょう

https://docs.gitlab.com/ee/user/permissions.html
チームの Owner または Master の権限を持っている人がユーザ追加できます
メンバになりたい場合は「アクセス権限をリクエストする」ボタン押下で依頼できるプロジェクトの作成

画面上部からプロジェクトを追加できる

1 つのプロジェクトにつき 1 つの git リポジトリ
複数の git リポジトリが欲しい場合は、チーム内に複数のプロジェクトを作る

CI/CDCI（Continuous Integration）と CD（ContinuousDelivery）
git push のタイミング、webhook などで CI/CD を起動する
gitlab は Kubernetes(K8s) のインスタンスである”Runner”が CI/CD 処理を実行する
Shared Runners、Group Runners、Specific Runners
Runner サーバのスポンサーを募集中ユーザ個人ページの設定「SSH Keys」ページから SSH 鍵を登録できる

git pull、git push 時に SSH 鍵で認証が済むため作業がスムーズ東京エリア Debian
勉強会のsalsa のシステム

alioth から salsa への移行の設計と作業内容

alioth が 2018 年 5 月 31 日で停止するため、salsa にデー
タを移行したgit リポジトリ、web サイト、PDF ファイル配備の仕組みを移行したhttps://wiki.debian.org/tokyodebian_salsa_migrate

ファイルのライセンス東京エリア Debian 勉強会の git リポジトリに収録しているファイルのライセンスは GPLv2 または GPLv3
原稿やスライドデータを作成していただける方はライセンスをご了承の上、ご利用くださいチームとメンバ

Debian 勉強会では「tokyodebian-team」というチーム名を利用
メンバの権限ポリシーは定めていない
コミット権をもらうにはメンバになる必要がある
patch を投げる方法 https://tokyodebian-team.
pages.debian.net/prework-update.html

静的ファイル公開機能:Pages

web サイトはhttps://tokyodebian-team.pages.debian.net/ で公開中
Pages という静的ファイルの web 公開機能を使っている
git リポジトリ名を URL のホスト部の命名規則と同じにすると、”/”直下でファイル公開できる
チーム内の他のプロジェクトは、
https://tokyodebian-team.pages.debian.net/pdf22018/ のようにプロジェクト名と同じディレクトリ名がつく

web サイトの仕組みweb サイトの仕組み

ソースコードは、
https://salsa.debian.org/tokyodebian-team/tokyodebian-team.pages.debian.net

Emacs Muse を利用した html テンプレートとデータから html をビルドする仕組み
git push すると CI/CD を実行して、html を生成して自動配備する
CI/CD の設定ファイルは、”.gitlab-ci.yml”
https://tokyodebian-team.pages.debian.net/
editing.html

Figure: web サイトへ HTML ファイルを配備する CI/CD 処理の流れ

原稿シス
テムの仕組み原稿システムの仕組み

ソースコードは、https://salsa.debian.org/
tokyodebian-team/monthly-report

TeX を利用した組版システム。tex → dvi → pdf の順に変換して原稿ファイルになる
有志によって原稿とスライドのテンプレートを作成
豊富な原稿量は勉強会参加者の長年の積み重ね原稿システムの複数 git の使い分け

tex の git リポジトリと、公開用 pdf ファイルの git リポジトリは分けている”pdf2005.git”から”pdf2018.git”に分割し、git リポジトリの中にビルドした pdf ファイルをコミットしている
CI/CD は tex の git リポジトリでは行っていない
CI/CD は”pdf20yy.git”の git リポジトリへの push 時に処理し、”/pdf20yy/xxx.pdf”のパスで web 公開している

PDF ファイルを配備する CI/CD 処理の流れ

Figure: web サイトへ原稿及びスライド PDF ファイルを配備する

今後の課題

原稿システムの CI/CD 処理に失敗することがある

web サイトをリニューアルしたい
原稿ファイルと tex ビルドシステムの UTF-8 対応
原稿の寄贈が減ってきており、半年のまとめ冊子のページ数が減ってきているまとめ

salsa で提供している gitlab の機能と設定を紹介しま
した
東京エリア Debian 勉強会の web サイト、原稿システムを salsa へ移行しました
資料の作成と公開は、自分の学びになるだけでなく、他の参加者の学びにもなると思います