継続的デプロイメントにサービスユーザーを使用する
多くの場合、継続的デプロイメントの自動化を使用するインフラストラクチャはソフトウェアのデプロイメントやタスクの実行にSSHを必要とします。一般に、この種類の自動化では、この目的専用の継続的統合/継続的デプロイメント(CI/CD)サーバーのローカルユーザーアカウントがSSHの実行に使用されます。たとえば、自動化されたJenkinsジョブは、Linuxサーバーでは「jenkins」などのユーザーとして実行される場合があります。Advanced Server Accessを利用することで、ターゲットサーバーへのデプロイメントを自動化するためのサービスユーザーを作成できます。
はじめに
- サービスユーザーが関連付けられている管理対象外ユーザーのホストにAdvanced Server Accessのクライアントをインストールする必要があります。
任意のサーバーをLinuxホストにすることができますが、Windowsホストにすることはできません。「Advanced Server Accessのクライアントをインストールする」を参照してください。
- サービスユーザーアカウントが含まれるホストへのグループアクセスを許可します。
継続的デプロイメントのためのサービスユーザーを作成する
- Advanced Server Accessのダッシュボードで[Users(ユーザー)]をクリックします。
- [Service Users(サービスユーザー)]タブを選択します。
- [Create Service User(サービスーザーを作成する)]をクリックします。[Create Service User(サービスーザーを作成する)]ページが表示されます。
- サービスユーザーのユーザー名を入力します。LinuxおよびWindowsの対応ユーザー名が自動的に作成されます。[Create Service User(サービスユーザーを作成する)]をクリックすると、サービスユーザーが作成されます。
- [Create API Key(API キーを作成する)]をクリックします。[API Key Secret Rotated(ローテーションされたAPIキーシークレット)]ページが表示されます。
- このページでAPIキーIDとAPIキーシークレットをコピーして保存します。
注:ウィンドウを閉じると、この情報は得られなくなります。この情報をなくしたときは、クライアントIDとシークレットを新たに生成しなおす必要があります。
プロジェクトのためのサービスを作成する
- チームのAdvanced Server Accessのダッシュボードで[Projects(プロジェクト)]をクリックします。[Projects(プロジェクト)]ページが表示されます。
- サービスを実行するサーバーが含まれるプロジェクトをクリックして、サービスユーザーに割り当てます。
- [Servers(サーバー)]タブを選択します。
- サービスユーザーを使用するサーバーを選択します。
- [Services(サービス)]タブを選択します。[Add Service(サービスを追加する)]をクリックします。
-
作成したサービスユーザーを[Service User(サービスユーザー)]ドロップダウンから選択します。管理対象外ユーザーのUIDを[UID]フィールドに入力します。
ユーザーのUIDを見つけるには、
ls /home
コマンドを使ってサーバーのユーザーをリスト表示した上で、id <user>
コマンドを使って特定ユーザーのUIDを探します。
グループにサービスユーザーを追加する
- Advanced Server Accessのダッシュボードで[Groups(グループ)]をクリックします。
- サービスユーザーがデプロイされるサーバーが含まれるプロジェクトに属するグループを選択します。
- [Users(ユーザー)]タブを選択します。
- 作成したサービスユーザーのユーザー名を入力します。[Add User(ユーザーを追加する)]をクリックします。
サービスユーザー認証を有効にする
作成したサービスユーザーに関連付けられているサーバーに必ずAdvanced Server Accessクライアントをインストールします。クライアントをインストールしてサービスユーザーの認証を有効にすることで、サービスユーザーの資格情報を使ってタスクを実行できるようになります。Advanced Server Accessサーバーエージェントがサーバーにインストールされ、稼働している必要があります。
-
サービスユーザーのサーバーに接続する:
ssh <target-server>
-
ルートユーザーに切り替える:
sudo su -
-
Advanced Server Accessのサービスユーザーに関連付けられている管理対象外ユーザーに切り替える:
su - <unmanaged-user>
-
サービスユーザー認証を有効化する:
sft config service_auth.enable true
-
SSH構成を更新する:
sft ssh-config >> ~/.ssh/config
SSH構成ファイルが別のディレクトリにあるときは、コマンドを変更してください。