ユーザー管理Rakeタスク
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
GitLabは、ユーザー管理用のRakeタスクを提供します。管理者は、管理者エリアを使用してユーザーを管理することもできます。
ユーザーをすべてのプロジェクトにデベロッパーとして追加
ユーザーをすべてのプロジェクトにデベロッパーとして追加するには、以下を実行します:
# omnibus-gitlab
sudo gitlab-rake gitlab:import:user_to_projects[username@domain.tld]
# installation from source
bundle exec rake gitlab:import:user_to_projects[username@domain.tld] RAILS_ENV=productionすべてのユーザーをすべてのプロジェクトに追加
すべてのユーザーをすべてのプロジェクトに追加するには、以下を実行します:
# omnibus-gitlab
sudo gitlab-rake gitlab:import:all_users_to_all_projects
# installation from source
bundle exec rake gitlab:import:all_users_to_all_projects RAILS_ENV=production管理者はメンテナーとして、その他のすべてのユーザーはデベロッパーとして追加されます。
ユーザーをすべてのグループにデベロッパーとして追加
ユーザーをすべてのグループにデベロッパーとして追加するには、以下を実行します:
# omnibus-gitlab
sudo gitlab-rake gitlab:import:user_to_groups[username@domain.tld]
# installation from source
bundle exec rake gitlab:import:user_to_groups[username@domain.tld] RAILS_ENV=productionすべてのユーザーをすべてのグループに追加
すべてのユーザーをすべてのグループに追加するには、以下を実行します:
# omnibus-gitlab
sudo gitlab-rake gitlab:import:all_users_to_all_groups
# installation from source
bundle exec rake gitlab:import:all_users_to_all_groups RAILS_ENV=production管理者はオーナーとして追加されるため、追加のユーザーをグループに追加できます。
指定されたグループのすべてのユーザーをproject_limit:0およびcan_create_group: falseに更新
指定されたグループのすべてのユーザーをproject_limit: 0およびcan_create_group: falseに更新するには、以下を実行します:
# omnibus-gitlab
sudo gitlab-rake gitlab:user_management:disable_project_and_group_creation\[:group_id\]
# installation from source
bundle exec rake gitlab:user_management:disable_project_and_group_creation\[:group_id\] RAILS_ENV=production指定されたグループ内のすべてのユーザー、そのサブグループ、およびこのグループネームスペース内のプロジェクトを、指定された制限で更新します。
請求対象ユーザーの数を制御
この設定を有効にすると、新規ユーザーは管理者によって承認されるまでブロックされます。デフォルトはfalseです:
block_auto_created_users: falseすべてのユーザーの2要素認証を無効にする
このタスクは、2要素認証 (2FA) を有効にしているすべてのユーザーに対して無効化します。たとえば、GitLabのconfig/secrets.ymlファイルが失われ、ユーザーがサインインできない場合に役立ちます。
すべてのユーザーの2要素認証を無効にするには、以下を実行します:
# omnibus-gitlab
sudo gitlab-rake gitlab:two_factor:disable_for_all_users
# installation from source
bundle exec rake gitlab:two_factor:disable_for_all_users RAILS_ENV=production2要素認証の暗号化キーをローテーションする
GitLabは、2要素認証 (2FA) に必要なシークレットデータを暗号化されたデータベースカラムに保存します。このデータの暗号化キーはotp_key_baseとして知られ、config/secrets.ymlに保存されています。
そのファイルが漏洩しても、個々の2FAのシークレットが漏洩していなければ、それらのシークレットを新しい暗号化キーで再暗号化することが可能です。これにより、すべてのユーザーに2FAの詳細を変更させることなく、漏洩したキーを変更できます。
2要素認証の暗号化キーをローテーションするには:
config/secrets.ymlファイルで古いキーを検索しますが、make sure you’re working with the production section。対象の行は次のようになります:production: otp_key_base: fffffffffffffffffffffffffffffffffffffffffffffff新しいシークレットを生成します:
# omnibus-gitlab sudo gitlab-rake secret # installation from source bundle exec rake secret RAILS_ENV=productionGitLabサーバーを停止し、既存のシークレットファイルをバックアップして、データベースを更新します:
# omnibus-gitlab sudo gitlab-ctl stop sudo cp config/secrets.yml config/secrets.yml.bak sudo gitlab-rake gitlab:two_factor:rotate_key:apply filename=backup.csv old_key=<old key> new_key=<new key> # installation from source sudo /etc/init.d/gitlab stop cp config/secrets.yml config/secrets.yml.bak bundle exec rake gitlab:two_factor:rotate_key:apply filename=backup.csv old_key=<old key> new_key=<new key> RAILS_ENV=production<old key>の値はconfig/secrets.ymlから読み取ることができます (<new key>は以前に生成されました)。ユーザー2FAのシークレットのencrypted値は、指定されたfilenameに書き込まれます。エラーが発生した場合に、これを使用してロールバックできます。config/secrets.ymlを変更してotp_key_baseを<new key>に設定し、再起動します。繰り返しになりますが、productionセクションで操作していることを確認してください。# omnibus-gitlab sudo gitlab-ctl start # installation from source sudo /etc/init.d/gitlab start
何らかの問題がある場合 (たとえば、old_keyに誤った値を使用している場合) は、config/secrets.ymlのバックアップを復元し、変更をロールバックできます:
# omnibus-gitlab
sudo gitlab-ctl stop
sudo gitlab-rake gitlab:two_factor:rotate_key:rollback filename=backup.csv
sudo cp config/secrets.yml.bak config/secrets.yml
sudo gitlab-ctl start
# installation from source
sudo /etc/init.d/gitlab start
bundle exec rake gitlab:two_factor:rotate_key:rollback filename=backup.csv RAILS_ENV=production
cp config/secrets.yml.bak config/secrets.yml
sudo /etc/init.d/gitlab startGitLab Duoにユーザーを一括割り当て
ユーザーのユーザー名が記載されたCSVファイルを使用して、GitLab Duoにユーザーを一括割り当てできます。CSVファイルには、usernameというヘッダーがあり、その後に各行にユーザー名が続く必要があります。
username
user1
user2
user3
user4GitLab Duo Pro
- プラン: Premium、Ultimate
- 提供形態: GitLab Self-Managed
GitLab Duo Proの一括ユーザー割り当てを実行するには、以下のRakeタスクを使用します:
bundle exec rake duo_pro:bulk_user_assignment DUO_PRO_BULK_USER_FILE_PATH=path/to/your/file.csvファイルのパスで角括弧を使用したい場合は、それらをエスケープするか、二重引用符を使用できます:
bundle exec rake duo_pro:bulk_user_assignment\['path/to/your/file.csv'\]
# or
bundle exec rake "duo_pro:bulk_user_assignment[path/to/your/file.csv]"GitLab Duo ProおよびEnterprise
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed
GitLab Self-Managed
このRakeタスクは、利用可能な購入済みアドオンに基づいて、GitLab Duo ProまたはEnterpriseのシートをインスタンスレベルでCSVファイルからユーザーリストに一括割り当てします。
GitLab Self-Managedインスタンスの一括ユーザー割り当てを実行するには:
bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment DUO_BULK_USER_FILE_PATH=path/to/your/file.csvファイルのパスで角括弧を使用したい場合は、それらをエスケープするか、二重引用符を使用できます:
bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment\['path/to/your/file.csv'\]
# or
bundle exec rake "gitlab_subscriptions:duo:bulk_user_assignment[path/to/your/file.csv]"GitLab.com
GitLab.comの管理者も、このRakeタスクを使用して、当該グループで利用可能な購入済みアドオンに基づいて、GitLab.comグループにGitLab Duo ProまたはEnterpriseのシートを一括割り当てできます。
GitLab.comグループの一括ユーザー割り当てを実行するには:
bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment DUO_BULK_USER_FILE_PATH=path/to/your/file.csv NAMESPACE_ID=<namespace_id>ファイルのパスで角括弧を使用したい場合は、それらをエスケープするか、二重引用符を使用できます:
bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment\['path/to/your/file.csv','<namespace_id>'\]
# or
bundle exec rake "gitlab_subscriptions:duo:bulk_user_assignment[path/to/your/file.csv,<namespace_id>]"トラブルシューティング
一括ユーザー割り当て中のエラー
Rakeタスクを使用して一括ユーザー割り当てを行う際、以下のエラーが発生する可能性があります:
User is not found: 指定されたユーザーが見つかりませんでした。提供されたユーザー名が既存のユーザーと一致していることを確認してください。ERROR_NO_SEATS_AVAILABLE: ユーザー割り当てに利用できるシートがありません。現在のシートの割り当てを確認するには、割り当て済みのGitLab Duoユーザーを表示する方法を参照してください。ERROR_INVALID_USER_MEMBERSHIP: ユーザーは非アクティブであるか、ボットであるか、またはゴーストであるため、割り当ての対象ではありません。ユーザーがアクティブであり、GitLab.comにいる場合は、提供されたネームスペースのメンバーであることを確認してください。