ユーザー管理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は、encryptedデータベースカラムに2要素認証(2FA)に必要なシークレットデータを保存します。このデータの暗号化キーはotp_key_baseと呼ばれ、config/secrets.ymlに保存されます。
そのファイルが漏洩した場合でも、個々の2FAシークレットが漏洩していない場合は、新しい暗号化キーを使用してそれらのシークレットを再encryptedにすることができます。これにより、すべてのユーザーに2FAの詳細の変更を強制することなく、漏洩したキーを変更できます。
2要素認証の暗号化キーをローテーションするには、次の手順を実行します:
config/secrets.ymlファイルで古いキーを検索しますが、必ずproductionセクションを操作してください。対象の行は次のようになります: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 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の場合は、指定されたネームスペースのメンバーであることを確認してください。