Jenkins CLI를 SSH에서 사용
가정 환경
필요한 플러그인
역방향 프록시 설정
이 기사 을 참고로 설정합니다.
Jenkins 설정하기
포트 번호 설정
Jenkins 관리 → 글로벌 보안 설정 → SSH 서버 → SSHD 포트에서 무작위로 설정합니다.
사용자에게 조작 권한 부여
Jenkins 관리 → 글로벌 보안 설정 → 권한 관리 → 로그인한 사용자에게 권한으로 설정합니다.
Jenkins CLI 작업을 위한 사용자 만들기
"Jenkins 관리"→ "사용자 관리"→ "사용자 만들기"에서 이번에는 사용자 "jenkinscli"를 만듭니다. 관리자 계정이 이미 있는 경우 이 단계를 건너뜁니다.
쌍 키 만들기
Jenkins가 실행중인 시스템에 SSH 로그인하고 Jenkins CLI를 조작하는 사용자와 같은 이름의 사용자를 만듭니다. 이 사용자의 키를 작성합니다.
사용자를 추가하는 샘플 코드
# rootユーザーで実行する / パスワードが必要な場合はpasswdコマンドで適宜設定する
adduser jenkinscli
su jenkinscli
# jenkinscliユーザーで実行する
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jenkinscli/.ssh/id_rsa):
Created directory '/home/jenkinscli/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jenkinscli/.ssh/id_rsa.
Your public key has been saved in /home/jenkinscli/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vcbYq/bGKtlhGFQNY+nGYiu2UuKUdWuoDBj/JaPDoNo [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| .=+ |
| ..... |
| . o |
|. . = +. |
|.o o + BS . |
|+ = B * o+ . |
|.B B B +.o= |
|..O o o o.o. |
|o Eo oo=o |
+----[SHA256]-----+
공개키를 Jenkins에 등록하기
실행중인 Jenkins에 공개 키를 등록합니다.
Jenkins 관리 → 사용자 관리 → 사용자 이름 → 설정 → SSH Public Keys의 순서로 공개 키를 등록합니다.
Jenkins CLI 사용
실행중인 Jenkins에 SSH 로그인하고 Jenkins CLI를 사용합니다.
포트 조사
SSH를 사용하여 Jenkins CLI를 활용합니다. 이전에 이 조작용 포트를 랜덤하게 선택하도록 설정했으므로 조작용 포트 번호를 확인합니다.
# リバースプロクシの設定によって変化する
curl -v http://localhost:8080/jenkins/login 2>&1 | grep SSH-Endpoint| cut -d':' -f3
46321
# リバースプロクシの設定によって変化する
curl -v http://localhost:8080/login 2>&1 | grep SSH-Endpoint| cut -d':' -f3
46321
Jenkins CLI 실행
다음 명령으로 Jenkins CLI 도움말 화면을 표시합니다.
# jenkinscli操作用のユーザーで実行します
# ポート番号はランダムに変更されますので環境に合わせて下さい
su jenkinscli
ssh -l jenkinscli -p 46321 localhost help
add-job-to-view
Adds jobs to view.
build
ジョブをビルドします。オプションで完了するまで待ちます。
cancel-quiet-down
"quiet-down"コマンドの処理をキャンセルします。
clear-queue
ビルドキューをクリアします。
connect-node
ノードと再接続します。
console
ビルドのコンソール出力を取得します。
copy-job
ジョブをコピーします。
create-credentials-by-xml
Create Credential by XML
create-credentials-domain-by-xml
Create Credentials Domain by XML
create-job
標準入力をConfig XMLとして読み込み、ジョブを新規に作成します。
create-node
標準入力をConfig XMLとして読み込み、ノードを新規に作成します。
create-view
Creates a new view by reading stdin as a XML configuration.
delete-builds
ビルドを削除します。
delete-credentials
Delete a Credential
delete-credentials-domain
Delete a Credentials Domain
delete-job
ジョブを削除します。
delete-node
ノードを削除します。
delete-view
Deletes view(s).
disable-job
ジョブを無効化します。
disconnect-node
ノードとの接続を切断します。
enable-job
ジョブを有効化します。
enable-plugin
Enables one or more installed plugins transitively.
get-credentials-as-xml
Get a Credentials as XML (secrets redacted)
get-credentials-domain-as-xml
Get a Credentials Domain as XML
get-job
ジョブ定義XMLを標準出力に出力します。
get-node
ノード定義XMLを標準出力に出力します。
get-view
Dumps the view definition XML to stdout.
groovy
指定したGroovyスクリプトを実行します。
groovysh
対話式のGroovyシェルを起動します。
help
利用可能なコマンドの一覧を表示します。
import-credentials-as-xml
Import credentials as XML. The output of "list-credentials-as-xml" can be used as input here as is, the only needed change is to set the actual Secrets which are redacted in the output.
install-plugin
ファイル、URLおよびアップデートセンターからプラグインをインストールします。
install-tool
ツールの自動インストールを実行し、インストール先を表示します。
keep-build
ビルドを保存するようにマークします。
list-changes
指定したビルドの変更履歴を表示します。
list-credentials
Lists the Credentials in a specific Store
list-credentials-as-xml
Export credentials as XML. The output of this command can be used as input for "import-credentials-as-xml" as is, the only needed change is to set the actual Secrets which are redacted in the output.
list-credentials-context-resolvers
List Credentials Context Resolvers
list-credentials-providers
List Credentials Providers
list-jobs
指定したビューかItem Groupのすべてのジョブを一覧表示します。
list-plugins
インストール済みのプラグインを一覧表示します。
login
認証情報を保存して、認証情報なしにコマンドを実行できるようにします。
logout
loginコマンドで保存した認証情報を削除します。
mail
標準入力の内容をメールとして送信します。
offline-node
"online-node"コマンドが実行されるまで、ビルドを実行するノードの使用を一時的に停止します。
online-node
直前に実行した"online-node"コマンドを取り消し、ビルドを実行するノードの使用を再開します。
quiet-down
Jenkinsは再起動に向けて終了処理を実施中です。ビルドを開始しないでください。
reload-configuration
メモリにあるすべてのデータを破棄して、ファイルから再ロードします。設定ファイルを直接修正した場合に役に立ちます。
reload-job
Reload job(s)
remove-job-from-view
Removes jobs from view.
restart
Jenkinsを再起動します。
safe-restart
Jenkinsを安全に再起動します。
safe-shutdown
Jenkinsを終了モードに変更しビルドが完了後に、シャットダウンします。
session-id
Jenkinsの再起動ごとに変化するセッションIDを出力します。
set-build-description
ビルドの説明を設定します。
set-build-display-name
ビルドの名称を設定します。
set-build-parameter
現在実行中のビルドのビルドパラメータを設定、更新します。
set-build-result
現在のビルドの結果を設定します。ビルド中に呼び出された場合のみ動作します。
shutdown
Jenkinsサーバーを直ちにシャットダウンします。
update-credentials-by-xml
Update Credentials by XML
update-credentials-domain-by-xml
Update Credentials Domain by XML
update-job
標準入力からの情報でジョブ定義XMLを更新します。get-jobコマンドの正反対のことを行います。
update-node
標準入力からの情報でノード定義XMLを更新します。get-nodeコマンドの正反対のことを行います。
update-view
Updates the view definition XML from stdin. The opposite of the get-view command.
version
バージョンを表示します。
wait-node-offline
ノードがオフラインになるのを待ちます。
wait-node-online
ノードがオンラインになるのを待ちます。
who-am-i
認証情報を表示します。
참고로 한 사이트
포트 번호 설정
Jenkins 관리 → 글로벌 보안 설정 → SSH 서버 → SSHD 포트에서 무작위로 설정합니다.
사용자에게 조작 권한 부여
Jenkins 관리 → 글로벌 보안 설정 → 권한 관리 → 로그인한 사용자에게 권한으로 설정합니다.
Jenkins CLI 작업을 위한 사용자 만들기
"Jenkins 관리"→ "사용자 관리"→ "사용자 만들기"에서 이번에는 사용자 "jenkinscli"를 만듭니다. 관리자 계정이 이미 있는 경우 이 단계를 건너뜁니다.
쌍 키 만들기
Jenkins가 실행중인 시스템에 SSH 로그인하고 Jenkins CLI를 조작하는 사용자와 같은 이름의 사용자를 만듭니다. 이 사용자의 키를 작성합니다.
사용자를 추가하는 샘플 코드
# rootユーザーで実行する / パスワードが必要な場合はpasswdコマンドで適宜設定する
adduser jenkinscli
su jenkinscli
# jenkinscliユーザーで実行する
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jenkinscli/.ssh/id_rsa):
Created directory '/home/jenkinscli/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jenkinscli/.ssh/id_rsa.
Your public key has been saved in /home/jenkinscli/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vcbYq/bGKtlhGFQNY+nGYiu2UuKUdWuoDBj/JaPDoNo [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| .=+ |
| ..... |
| . o |
|. . = +. |
|.o o + BS . |
|+ = B * o+ . |
|.B B B +.o= |
|..O o o o.o. |
|o Eo oo=o |
+----[SHA256]-----+
공개키를 Jenkins에 등록하기
실행중인 Jenkins에 공개 키를 등록합니다.
Jenkins 관리 → 사용자 관리 → 사용자 이름 → 설정 → SSH Public Keys의 순서로 공개 키를 등록합니다.
Jenkins CLI 사용
실행중인 Jenkins에 SSH 로그인하고 Jenkins CLI를 사용합니다.
포트 조사
SSH를 사용하여 Jenkins CLI를 활용합니다. 이전에 이 조작용 포트를 랜덤하게 선택하도록 설정했으므로 조작용 포트 번호를 확인합니다.
# リバースプロクシの設定によって変化する
curl -v http://localhost:8080/jenkins/login 2>&1 | grep SSH-Endpoint| cut -d':' -f3
46321
# リバースプロクシの設定によって変化する
curl -v http://localhost:8080/login 2>&1 | grep SSH-Endpoint| cut -d':' -f3
46321
Jenkins CLI 실행
다음 명령으로 Jenkins CLI 도움말 화면을 표시합니다.
# jenkinscli操作用のユーザーで実行します
# ポート番号はランダムに変更されますので環境に合わせて下さい
su jenkinscli
ssh -l jenkinscli -p 46321 localhost help
add-job-to-view
Adds jobs to view.
build
ジョブをビルドします。オプションで完了するまで待ちます。
cancel-quiet-down
"quiet-down"コマンドの処理をキャンセルします。
clear-queue
ビルドキューをクリアします。
connect-node
ノードと再接続します。
console
ビルドのコンソール出力を取得します。
copy-job
ジョブをコピーします。
create-credentials-by-xml
Create Credential by XML
create-credentials-domain-by-xml
Create Credentials Domain by XML
create-job
標準入力をConfig XMLとして読み込み、ジョブを新規に作成します。
create-node
標準入力をConfig XMLとして読み込み、ノードを新規に作成します。
create-view
Creates a new view by reading stdin as a XML configuration.
delete-builds
ビルドを削除します。
delete-credentials
Delete a Credential
delete-credentials-domain
Delete a Credentials Domain
delete-job
ジョブを削除します。
delete-node
ノードを削除します。
delete-view
Deletes view(s).
disable-job
ジョブを無効化します。
disconnect-node
ノードとの接続を切断します。
enable-job
ジョブを有効化します。
enable-plugin
Enables one or more installed plugins transitively.
get-credentials-as-xml
Get a Credentials as XML (secrets redacted)
get-credentials-domain-as-xml
Get a Credentials Domain as XML
get-job
ジョブ定義XMLを標準出力に出力します。
get-node
ノード定義XMLを標準出力に出力します。
get-view
Dumps the view definition XML to stdout.
groovy
指定したGroovyスクリプトを実行します。
groovysh
対話式のGroovyシェルを起動します。
help
利用可能なコマンドの一覧を表示します。
import-credentials-as-xml
Import credentials as XML. The output of "list-credentials-as-xml" can be used as input here as is, the only needed change is to set the actual Secrets which are redacted in the output.
install-plugin
ファイル、URLおよびアップデートセンターからプラグインをインストールします。
install-tool
ツールの自動インストールを実行し、インストール先を表示します。
keep-build
ビルドを保存するようにマークします。
list-changes
指定したビルドの変更履歴を表示します。
list-credentials
Lists the Credentials in a specific Store
list-credentials-as-xml
Export credentials as XML. The output of this command can be used as input for "import-credentials-as-xml" as is, the only needed change is to set the actual Secrets which are redacted in the output.
list-credentials-context-resolvers
List Credentials Context Resolvers
list-credentials-providers
List Credentials Providers
list-jobs
指定したビューかItem Groupのすべてのジョブを一覧表示します。
list-plugins
インストール済みのプラグインを一覧表示します。
login
認証情報を保存して、認証情報なしにコマンドを実行できるようにします。
logout
loginコマンドで保存した認証情報を削除します。
mail
標準入力の内容をメールとして送信します。
offline-node
"online-node"コマンドが実行されるまで、ビルドを実行するノードの使用を一時的に停止します。
online-node
直前に実行した"online-node"コマンドを取り消し、ビルドを実行するノードの使用を再開します。
quiet-down
Jenkinsは再起動に向けて終了処理を実施中です。ビルドを開始しないでください。
reload-configuration
メモリにあるすべてのデータを破棄して、ファイルから再ロードします。設定ファイルを直接修正した場合に役に立ちます。
reload-job
Reload job(s)
remove-job-from-view
Removes jobs from view.
restart
Jenkinsを再起動します。
safe-restart
Jenkinsを安全に再起動します。
safe-shutdown
Jenkinsを終了モードに変更しビルドが完了後に、シャットダウンします。
session-id
Jenkinsの再起動ごとに変化するセッションIDを出力します。
set-build-description
ビルドの説明を設定します。
set-build-display-name
ビルドの名称を設定します。
set-build-parameter
現在実行中のビルドのビルドパラメータを設定、更新します。
set-build-result
現在のビルドの結果を設定します。ビルド中に呼び出された場合のみ動作します。
shutdown
Jenkinsサーバーを直ちにシャットダウンします。
update-credentials-by-xml
Update Credentials by XML
update-credentials-domain-by-xml
Update Credentials Domain by XML
update-job
標準入力からの情報でジョブ定義XMLを更新します。get-jobコマンドの正反対のことを行います。
update-node
標準入力からの情報でノード定義XMLを更新します。get-nodeコマンドの正反対のことを行います。
update-view
Updates the view definition XML from stdin. The opposite of the get-view command.
version
バージョンを表示します。
wait-node-offline
ノードがオフラインになるのを待ちます。
wait-node-online
ノードがオンラインになるのを待ちます。
who-am-i
認証情報を表示します。
참고로 한 사이트
# リバースプロクシの設定によって変化する
curl -v http://localhost:8080/jenkins/login 2>&1 | grep SSH-Endpoint| cut -d':' -f3
46321
# リバースプロクシの設定によって変化する
curl -v http://localhost:8080/login 2>&1 | grep SSH-Endpoint| cut -d':' -f3
46321
# jenkinscli操作用のユーザーで実行します
# ポート番号はランダムに変更されますので環境に合わせて下さい
su jenkinscli
ssh -l jenkinscli -p 46321 localhost help
add-job-to-view
Adds jobs to view.
build
ジョブをビルドします。オプションで完了するまで待ちます。
cancel-quiet-down
"quiet-down"コマンドの処理をキャンセルします。
clear-queue
ビルドキューをクリアします。
connect-node
ノードと再接続します。
console
ビルドのコンソール出力を取得します。
copy-job
ジョブをコピーします。
create-credentials-by-xml
Create Credential by XML
create-credentials-domain-by-xml
Create Credentials Domain by XML
create-job
標準入力をConfig XMLとして読み込み、ジョブを新規に作成します。
create-node
標準入力をConfig XMLとして読み込み、ノードを新規に作成します。
create-view
Creates a new view by reading stdin as a XML configuration.
delete-builds
ビルドを削除します。
delete-credentials
Delete a Credential
delete-credentials-domain
Delete a Credentials Domain
delete-job
ジョブを削除します。
delete-node
ノードを削除します。
delete-view
Deletes view(s).
disable-job
ジョブを無効化します。
disconnect-node
ノードとの接続を切断します。
enable-job
ジョブを有効化します。
enable-plugin
Enables one or more installed plugins transitively.
get-credentials-as-xml
Get a Credentials as XML (secrets redacted)
get-credentials-domain-as-xml
Get a Credentials Domain as XML
get-job
ジョブ定義XMLを標準出力に出力します。
get-node
ノード定義XMLを標準出力に出力します。
get-view
Dumps the view definition XML to stdout.
groovy
指定したGroovyスクリプトを実行します。
groovysh
対話式のGroovyシェルを起動します。
help
利用可能なコマンドの一覧を表示します。
import-credentials-as-xml
Import credentials as XML. The output of "list-credentials-as-xml" can be used as input here as is, the only needed change is to set the actual Secrets which are redacted in the output.
install-plugin
ファイル、URLおよびアップデートセンターからプラグインをインストールします。
install-tool
ツールの自動インストールを実行し、インストール先を表示します。
keep-build
ビルドを保存するようにマークします。
list-changes
指定したビルドの変更履歴を表示します。
list-credentials
Lists the Credentials in a specific Store
list-credentials-as-xml
Export credentials as XML. The output of this command can be used as input for "import-credentials-as-xml" as is, the only needed change is to set the actual Secrets which are redacted in the output.
list-credentials-context-resolvers
List Credentials Context Resolvers
list-credentials-providers
List Credentials Providers
list-jobs
指定したビューかItem Groupのすべてのジョブを一覧表示します。
list-plugins
インストール済みのプラグインを一覧表示します。
login
認証情報を保存して、認証情報なしにコマンドを実行できるようにします。
logout
loginコマンドで保存した認証情報を削除します。
mail
標準入力の内容をメールとして送信します。
offline-node
"online-node"コマンドが実行されるまで、ビルドを実行するノードの使用を一時的に停止します。
online-node
直前に実行した"online-node"コマンドを取り消し、ビルドを実行するノードの使用を再開します。
quiet-down
Jenkinsは再起動に向けて終了処理を実施中です。ビルドを開始しないでください。
reload-configuration
メモリにあるすべてのデータを破棄して、ファイルから再ロードします。設定ファイルを直接修正した場合に役に立ちます。
reload-job
Reload job(s)
remove-job-from-view
Removes jobs from view.
restart
Jenkinsを再起動します。
safe-restart
Jenkinsを安全に再起動します。
safe-shutdown
Jenkinsを終了モードに変更しビルドが完了後に、シャットダウンします。
session-id
Jenkinsの再起動ごとに変化するセッションIDを出力します。
set-build-description
ビルドの説明を設定します。
set-build-display-name
ビルドの名称を設定します。
set-build-parameter
現在実行中のビルドのビルドパラメータを設定、更新します。
set-build-result
現在のビルドの結果を設定します。ビルド中に呼び出された場合のみ動作します。
shutdown
Jenkinsサーバーを直ちにシャットダウンします。
update-credentials-by-xml
Update Credentials by XML
update-credentials-domain-by-xml
Update Credentials Domain by XML
update-job
標準入力からの情報でジョブ定義XMLを更新します。get-jobコマンドの正反対のことを行います。
update-node
標準入力からの情報でノード定義XMLを更新します。get-nodeコマンドの正反対のことを行います。
update-view
Updates the view definition XML from stdin. The opposite of the get-view command.
version
バージョンを表示します。
wait-node-offline
ノードがオフラインになるのを待ちます。
wait-node-online
ノードがオンラインになるのを待ちます。
who-am-i
認証情報を表示します。
Reference
이 문제에 관하여(Jenkins CLI를 SSH에서 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mamono210/items/899c851548df9d99f068텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)