SMTP Rakeタスク

GitLab 14.2で導入されました

以下はSMTP関連のRakeタスクです。

シークレット

GitLabは暗号化されたファイルから読み込むためにSMTP設定シークレットを使うことができます。暗号化されたファイルの内容を更新するために、以下のRakeタスクが用意されています。

シークレットを表示

現在の SMTP シークレットの内容を表示します。

  • Linux パッケージのインストール:

     sudo gitlab-rake gitlab:smtp:secret:show
    
  • セルフコンパイルによるインストール:

     bundle exec rake gitlab:smtp:secret:show RAILS_ENV=production
    

出力例:

password: '123'
user_name: 'gitlab-inst'

シークレットの編集

秘密の内容をエディタで開き、終了時に暗号化された秘密ファイルに結果を書き込みます。

  • Linux パッケージのインストール:

     sudo gitlab-rake gitlab:smtp:secret:edit EDITOR=vim
    
  • セルフコンパイルによるインストール:

     bundle exec rake gitlab:smtp:secret:edit RAILS_ENV=production EDITOR=vim
    

生のシークレットを書き込む

新しいシークレットコンテンツをSTDINに書き込んでください。

  • Linux パッケージのインストール:

     echo -e "password: '123'" | sudo gitlab-rake gitlab:smtp:secret:write
    
  • セルフコンパイルによるインストール:

     echo -e "password: '123'" | bundle exec rake gitlab:smtp:secret:write RAILS_ENV=production
    

シークレットの例

エディタの例

writeタスクはeditコマンドがエディタで動作しない場合に使用できます:

# Write the existing secret to a plaintext file
sudo gitlab-rake gitlab:smtp:secret:show > smtp.yaml
# Edit the smtp file in your editor
...
# Re-encrypt the file
cat smtp.yaml | sudo gitlab-rake gitlab:smtp:secret:write
# Remove the plaintext file
rm smtp.yaml

KMSインテグレーション例

KMSで暗号化されたコンテンツの受信アプリケーションとしても使用できます:

gcloud kms decrypt --key my-key --keyring my-test-kms --plaintext-file=- --ciphertext-file=my-file --location=us-west1 | sudo gitlab-rake gitlab:smtp:secret:write

Google Cloud シークレットインテグレーション例

Google Cloudからシークレットを受け取るアプリケーションとしても使用できます:

gcloud secrets versions access latest --secret="my-test-secret" > $1 | sudo gitlab-rake gitlab:smtp:secret:write