概要
このエントリは、「Enterprise "hello, world" 2018 Advent Calendar 2018」の12/11向けのものです。このAdvent Calendarでは、複数個のエントリにまたがる話の流れも鑑みつつ、なるべく1エントリで1つのトピックをカバーできるようにする予定です。
このエントリで記載するトピックは、SambaによるActiveDirectory(AD)にユーザを追加してGitLabにコミットです。Advent Calendarの12/8-12/10で作ってきた環境をベースにしています。
前提
おことわり
- このEnterpfise "hello, world"シリーズは、ネタのためのエントリです。実環境でそのまま利用ことを目的とはしていません。
- 動かしやすさを優先してセキュリティを意図的に低くする設定など入れてありますのでご注意ください。
想定読者
「Enterprise "hello, world" 2018」的なネタとしては、下記のような状況を想定しています。
開発環境の一部ができたので、ここいらでユーザを作ってGitにコミットできるか試しておく
Samba側の作業
dockerコンテナでの作業準備
ここからの作業は、dockerコンテナ内のシェルで実施します。まずはコンテナに入ります。
$ sudo docker exec -it 944 /bin/bash
root@localdc:/#
ユーザ一覧の確認
samba-toolを用いて、ユーザの管理を行います。
まずはユーザ一覧を確認してみます。
root@localdc:/# samba-tool user list
Administrator
krbtgt
Guest
## ユーザを追加する
ユーザ追加は、samba-toolの「user add」を使います。ここでは、ユーザ"john"を追加しています。
パスワードは、要件を満たすものをセットします。
下記例では、パスワードを"yoko"としてみたのですが、短すぎるので使えませんでした。
root@localdc:/# samba-tool user add john
New Password:
Retype Password:
ERROR(ldb): Failed to add user 'john': - 0000052D: Constraint violation - check_password_restrictions: the password is too short. It should be equal or longer than 7 characters!
```
ユーザが追加されていることを確認します。
root@localdc:/# samba-tool user add john
New Password:
Retype Password:
User 'john' created successfully
root@localdc:/# samba-tool user list
Administrator
krbtgt
Guest
john
GitLab側の作業
ログイン
前述の方法で作ったユーザ「john」でサインインできることを確認します。
「LDAP」のタブで、ユーザ名とパスワードを指定し、サインイン。
問題がなければ、ホーム画面に移動します。右上のユーザのアイコンをクリックして確認すると、「john」となっています。
リポジトリを作って、コミット
ホーム画面で「Create a project」を選択します。
適当に名前を入れて、「Create project」
リポジトリの初期画面が現れます。
ページ内の手順に従って、git cloneして、あれこれします。
ここで、ページ手順には、「gitlab.ehw2018.local」というドメインが指定されているのですが、本エントリではまだ名前解決は実現しちえないので、仮想マシン上のVMの中のdockerへの転送用のポート番号(GitLabのUIを見ているポート番号)に置き換えています。
git pushまで終わり、GitLabのページを再読み込みすると、リポジトリへの格納まで成功していることが確認できます。
以上で、SambaのADに追加したアカウントで、新しいgitリポジトリを作り、コミットすることができました。
まとめ
このエントリでは、「Enterprise "hello, world" 2018 Advent Calendar 2018」(EHW2018)の11日目として、SambaによるActiveDirectory(AD)にユーザを追加してGitLabにコミットすることをトピックとして取り上げました。
EHW2018のネタとしては、このあと、ここで作ったユーザとGitLabのプロジェクトをベースに、アプリを作っていく予定です。。