#author("2018-05-01T17:45:13+09:00","","") #author("2018-05-01T18:17:19+09:00","","") #nofollow #norelated 総数:&counter(total); 今日:&counter(today); 昨日:&counter(yesterday); * もくじ [#yc2f121d] #contents *install SSH Server on Ubuntu 16.04 Xenial Linux [#of205f21] 参考URL https://linuxconfig.org/how-to-install-ssh-server-on-ubuntu-16-04-xenial-linux &br; **install SSH Server [#p0021136] $ sudo apt-get install ssh パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: ncurses-term openssh-server openssh-sftp-server ssh-import-id 提案パッケージ: ssh-askpass rssh molly-guard monkeysphere 以下のパッケージが新たにインストールされます: ncurses-term openssh-server openssh-sftp-server ssh ssh-import-id アップグレード: 0 個、新規インストール: 5 個、削除: 0 個、保留: 4 個。 643 kB のアーカイブを取得する必要があります。 この操作後に追加で 5,244 kB のディスク容量が消費されます。 続行しますか? [Y/n] Y 取得:1 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-sftp-server amd64 1:7.2p2-4ubuntu2.1 [38.8 kB] 取得:2 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-server amd64 1:7.2p2-4ubuntu2.1 [338 kB] 取得:3 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 ssh all 1:7.2p2-4ubuntu2.1 [7,070 B] 取得:4 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 ncurses-term all 6.0+20160213-1ubuntu1 [249 kB] 取得:5 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 ssh-import-id all 5.5-0ubuntu1 [10.2 kB] 643 kB を 0秒 で取得しました (2,945 kB/s) パッケージを事前設定しています ... 以前に未選択のパッケージ openssh-sftp-server を選択しています。 (データベースを読み込んでいます ... 現在 187369 個のファイルとディレクトリがインストールされています。) .../openssh-sftp-server_1%3a7.2p2-4ubuntu2.1_amd64.deb を展開する準備をしています ... openssh-sftp-server (1:7.2p2-4ubuntu2.1) を展開しています... 以前に未選択のパッケージ openssh-server を選択しています。 .../openssh-server_1%3a7.2p2-4ubuntu2.1_amd64.deb を展開する準備をしています ... openssh-server (1:7.2p2-4ubuntu2.1) を展開しています... 以前に未選択のパッケージ ssh を選択しています。 .../ssh_1%3a7.2p2-4ubuntu2.1_all.deb を展開する準備をしています ... ssh (1:7.2p2-4ubuntu2.1) を展開しています... 以前に未選択のパッケージ ncurses-term を選択しています。 .../ncurses-term_6.0+20160213-1ubuntu1_all.deb を展開する準備をしています ... ncurses-term (6.0+20160213-1ubuntu1) を展開しています... 以前に未選択のパッケージ ssh-import-id を選択しています。 .../ssh-import-id_5.5-0ubuntu1_all.deb を展開する準備をしています ... ssh-import-id (5.5-0ubuntu1) を展開しています... man-db (2.7.5-1) のトリガを処理しています ... systemd (229-4ubuntu10) のトリガを処理しています ... ureadahead (0.100.0-19) のトリガを処理しています ... ureadahead will be reprofiled on next reboot ufw (0.35-0ubuntu2) のトリガを処理しています ... openssh-sftp-server (1:7.2p2-4ubuntu2.1) を設定しています ... openssh-server (1:7.2p2-4ubuntu2.1) を設定しています ... Creating SSH2 RSA key; this may take some time ... 2048 SHA256:EEoY9zH7S7NKv2zcSnjfgyXou82OytYuL3xXkYbA6X4 root@ryu (RSA) Creating SSH2 DSA key; this may take some time ... 1024 SHA256:wcQxlpVBJ7VEQg8WBg8ZB7smHQYsCAbrUwW2kaUqd+8 root@ryu (DSA) Creating SSH2 ECDSA key; this may take some time ... 256 SHA256:2oqyKIXQ7SHlo9PzpyZ+JYKplh12BJYobVd1BCy4Ag0 root@ryu (ECDSA) Creating SSH2 ED25519 key; this may take some time ... 256 SHA256:davM55b/rU4zBUXbc+JqZ/UoYB3HmrJBGC0KtfGx7Jo root@ryu (ED25519) ssh (1:7.2p2-4ubuntu2.1) を設定しています ... ncurses-term (6.0+20160213-1ubuntu1) を設定しています ... ssh-import-id (5.5-0ubuntu1) を設定しています ... systemd (229-4ubuntu10) のトリガを処理しています ... ureadahead (0.100.0-19) のトリガを処理しています ... ufw (0.35-0ubuntu2) のトリガを処理しています ... **start the SSH server using the following command [#u5a8e017] $ sudo service ssh start **To automatically start your SSH server after reboot [#n3f20068] $ sudo systemctl enable ssh Synchronizing state of ssh.service with SysV init with /lib/systemd/systemd-sysv-install... Executing /lib/systemd/systemd-sysv-install enable ssh *UbuntuからWindowsの共有フォルダを自動マウントする [#ce0a155a] 下記を参考に操作するWindowsの共有フォルダを自動マウントするようにしておく&br; http://foxtail.lv9.org/wiki/doc/pukiwiki-1_5_1_utf8/index.php?mount%20command#o9dce617 *Installation [#v3ed5fae] ~$ wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - OK ~$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' ~$ sudo apt-get update ヒット:1 http://jp.archive.ubuntu.com/ubuntu xenial InRelease 取得:2 http://jp.archive.ubuntu.com/ubuntu xenial-updates InRelease [95.7 kB] ヒット:3 http://jp.archive.ubuntu.com/ubuntu xenial-backports InRelease 取得:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB] 無視:5 http://pkg.jenkins.io/debian-stable binary/ InRelease 取得:6 http://pkg.jenkins.io/debian-stable binary/ Release [2,042 B] 取得:7 http://pkg.jenkins.io/debian-stable binary/ Release.gpg [181 B] 取得:8 http://pkg.jenkins.io/debian-stable binary/ Packages [658 B] 193 kB を 1秒 で取得しました (121 kB/s) パッケージリストを読み込んでいます... 完了 W: http://pkg.jenkins.io/debian-stable/binary/Release.gpg: 鍵 150FDE3F7787E7D11EF4E12A9B7D32F2D50582E6 による署名は弱い digest アルゴリズム (SHA1) を使用しています **方法1 apt-getでインストールする [#ga3ea994] ~$ sudo apt-get install jenkins パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: daemon 以下のパッケージが新たにインストールされます: daemon jenkins アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 4 個。 69.0 MB のアーカイブを取得する必要があります。 この操作後に追加で 70.1 MB のディスク容量が消費されます。 続行しますか? [Y/n] Y 取得:1 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 daemon amd64 0.6.4-1 [98.2 kB] 取得:2 http://pkg.jenkins.io/debian-stable binary/ jenkins 2.19.1 [68.9 MB] 69.0 MB を 10秒 で取得しました (6,299 kB/s) 以前に未選択のパッケージ daemon を選択しています。 (データベースを読み込んでいます ... 現在 190132 個のファイルとディレクトリがインストールされています。) .../daemon_0.6.4-1_amd64.deb を展開する準備をしています ... daemon (0.6.4-1) を展開しています... 以前に未選択のパッケージ jenkins を選択しています。 .../jenkins_2.19.1_all.deb を展開する準備をしています ... jenkins (2.19.1) を展開しています... man-db (2.7.5-1) のトリガを処理しています ... systemd (229-4ubuntu10) のトリガを処理しています ... ureadahead (0.100.0-19) のトリガを処理しています ... daemon (0.6.4-1) を設定しています ... jenkins (2.19.1) を設定しています ... systemd (229-4ubuntu10) のトリガを処理しています ... ureadahead (0.100.0-19) のトリガを処理しています ... バージョンを確認 -2.19.1 だった。 **方法2 古いバージョンの場合は debパッケージを取得してインストールする [#v606ddf8] http://pkg.jenkins-ci.org/debian/ からインストールしたいバージョンを探す 例 2.62をインストールしたい場合 ~$ wget http://pkg.jenkins-ci.org/debian/binary/jenkins_2.62_all.deb --2017-12-28 22:19:34-- http://pkg.jenkins-ci.org/debian/binary/jenkins_2.62_all.deb pkg.jenkins-ci.org (pkg.jenkins-ci.org) をDNSに問いあわせています... 52.202.51.185 pkg.jenkins-ci.org (pkg.jenkins-ci.org)|52.202.51.185|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 302 Found 場所: http://mirrors.jenkins.io/debian/jenkins_2.62_all.deb [続く] --2017-12-28 22:19:36-- http://mirrors.jenkins.io/debian/jenkins_2.62_all.deb mirrors.jenkins.io (mirrors.jenkins.io) をDNSに問いあわせています... 52.202.51.185 pkg.jenkins-ci.org:80 への接続を再利用します。 HTTP による接続要求を送信しました、応答を待っています... 302 Found 場所: http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/debian/jenkins_2.62_all.deb [続く] --2017-12-28 22:19:39-- http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/debian/jenkins_2.62_all.deb ftp.yz.yamagata-u.ac.jp (ftp.yz.yamagata-u.ac.jp) をDNSに問いあわせています... 2001:df0:25e:e100::2, 2001:df0:25e:e100::3, 133.24.248.18, ... ftp.yz.yamagata-u.ac.jp (ftp.yz.yamagata-u.ac.jp)|2001:df0:25e:e100::2|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 70855550 (68M) [application/x-debian-package] `jenkins_2.62_all.deb' に保存中 jenkins_2.62_all.deb 100% [================================================================>] 67.57M 10.8MB/s in 7.9s 2017-12-28 22:19:47 (8.61 MB/s) - `jenkins_2.62_all.deb' へ保存完了 [70855550/70855550] ~$ sudo apt-get install daemon ~$ sudo dpkg -i jenkins_2.62_all.deb 以前に未選択のパッケージ jenkins を選択しています。 (データベースを読み込んでいます ... 現在 575211 個のファイルとディレクトリがインストールされています。) jenkins_2.62_all.deb を展開する準備をしています ... jenkins (2.62) を展開しています... jenkins (2.62) を設定しています ... insserv: script sedzPZiKH: service xrdp already provided! systemd (229-4ubuntu19) のトリガを処理しています ... ureadahead (0.100.0-19) のトリガを処理しています ... ureadahead will be reprofiled on next reboot */etc/default/jenkinsの編集 [#b807cfdd] ~$ sudo gvim -f /etc/default/jenkins -arguments to pass to java に「JAVA_ARGS="-Dfile.encoding=utf-8"」を行追記(Git Pluginの文字化け対応) -port for HTTP connector の HTTP_PORT=8080 を 環境に合わせて必要なら変更する。<br> 例: HTTP_PORT=4000 -arguments to pass to jenkins.の"JENKINS_ARGS"に"--prefix=/jenkins"を行末に追加(URLをサブディレクトリ式にする為) 編集例 ~$ colordiff -pu /etc/default/jenkins.default /etc/default/jenkins --- /etc/default/jenkins.default 2016-10-05 00:20:48.000000000 +0900 +++ /etc/default/jenkins 2016-10-10 18:17:07.879767718 +0900 @@ -10,6 +10,7 @@ JAVA=/usr/bin/java JAVA_ARGS="-Djava.awt.headless=true" # Allow graphs etc. to work even when an X server is present #JAVA_ARGS="-Xmx256m" #JAVA_ARGS="-Djava.net.preferIPv4Stack=true" # make jenkins listen on IPv4 address +JAVA_ARGS="-Dfile.encoding=utf-8" # avoid garbled characters in Git Plugin PIDFILE=/var/run/$NAME/$NAME.pid @@ -54,8 +55,8 @@ MAXOPENFILES=8192 # UMASK=027 # port for HTTP connector (default 8080; disable with -1) -HTTP_PORT=8080 - +#HTTP_PORT=8080 +HTTP_PORT=4000 # servlet context, important if you want to use apache proxying PREFIX=/$NAME @@ -69,4 +70,4 @@ PREFIX=/$NAME # --webroot=~/.jenkins/war # --prefix=$PREFIX -JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT" +JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --prefix=/jenkins" *restart jenkins [#u92888bf] ~$ sudo service jenkins restart * Restarting Jenkins Continuous Integration Server jenkins *getting start [#uf229197] **ブラウザで接続 [#be03a283] http://<hostname>:<port>/jenkins/ -Unlock Jenkins画面が表示される **下記ファイルの初期パスワードを Administrator password エディットボックスへペースト [#j50c0c10] /var/lib/jenkins/secrets/initialAdminPassword **画面右下の continue ボタンを選択する [#w2f951a6] -Customize Jenkins 画面が表示される **Install Suggested Plugins ボタンを選択する [#h7144d1d] -いくつかのpluginがインストールされる -Create First Admin User 画面が表示される **First Admin User 情報を入力する [#c68871f8] Username: jenkins Password: プリセットされている Confirm password: 同じのを入力する Full name: <your name> E-mail address: <your email address> **Continue as admin を選択する [#ldaf58f7] -Jenkins is ready! 画面が表示される You've skipped creating an admin user. To log in, use the username: 'admin' and the administrator password you used to access the setup wizard. --スキップしてしまったようだ。 --次回からは username は admin でログインしよう **Start using Jenkins ボタンを選択する [#w6dc731c] *Pluginを設定する [#g9a2f9ab] **ブラウザで接続 [#k82bc1f8] http://<hostname>:<port>/jenkins/ -ログイン画面が表示される **ログインする [#v16b9a36] Username: admin Password: <Administrator password> -Welcome to Jenkins!画面が表示される **画面左の Manage Jenkins を選択 [#i8af8dff] **Manage Plugins を選択 [#v4e9e3df] -Plugin Manager画面が表示される **Availableタブ を選択 [#m7acc542] ***下記のプラグインをインストールする [#y5e87600] -各プラグインのチェックボックスをチェック状態にしたうえで、「ダウンロードして再起動後にインストール」ボタンを選択する。 |プラグイン|説明|備考|h |SIZE(20):Javadoc Plugin|This plugin adds Javadoc support to Jenkins.|その他 (website)| |SIZE(20):Filesystem Trigger Plug-in|FSTrigger provides polling mechanisms to monitor a file system and trigger a build if a file or a set of files have changed.|ビルドトリガ| |SIZE(20):Shelve Project Plugin|This plugin lets you shelve projects so that they can easily be resurrected.|その他 (website)&br;ユーザーインタフェース| |SIZE(20):Translation Assistance plugin|This plugin adds an additional dialog box in every page, which enables people to contribute localizations for the messages they are seeing in the current page|ユーザーインタフェース| |SIZE(20):Maven Integration plugin|This plugin provides an advanced integration for Maven 2/3 projects.|ビルドツール| |SIZE(20):Job Configuration History Plugin|Saves copies of all job and system configurations.|その他 (website)&br;ユーザーインタフェース| |SIZE(20):Parameterized Trigger plugin|This plugin lets you trigger new builds when your build has completed, with various ways of specifying parameters for the new build.|その他 (website)| |SIZE(20):Hudson Seleniumhq plugin|This plugin allows you to run and load HTML Selenese suite result generate by Selenium Server from Seleniumhq. Jenkins will generate the trend report of test result. |ビルドツール&br;ビルドレポート| |SIZE(20):CVS Plug-in|This bundled plugin integrates Jenkins with CVS version control system.|ソース管理システム| |SIZE(20):Copy Artifact Plugin|This bundled plugin integrates Jenkins with CVS version control system.|ソース管理システム| |SIZE(20):Join plugin|This plugin allows a job to be run after all the immediate downstream jobs have completed.|ビルドトリガ| |SIZE(20):Files Found Trigger|Build trigger that polls one or more directories and starts a build if certain files are found within those directories.|ビルドトリガ| |SIZE(20):Lockable Resources plugin|This plugin allows to define lockable resources (such as printers, phones, computers, etc.) that can be used by builds. If a build requires an resource which is already locked, it will wait for the resource to be free. One can define a lock-priority globally and on a per-job basis.|Agent Launchers and Controllers| |SIZE(20):disk-usage plugin|This plugin records disk usage.|ビルドレポート| |SIZE(20):SSH Agent Plugin|This plugin allows you to provide SSH credentials to builds via a ssh-agent in Jenkins.|その他 (website)| |SIZE(20):Rebuilder|This plug-in allows the user to _rebuild_ a _parametrized build_ without entering the _parameters_ again.It will also allow the user to edit the parameters before rebuilding.|その他 (website)| |SIZE(20):Gerrit Trigger|This plugin integrates Jenkins to Gerrit code review for triggering builds when a "patch set" is created.|ビルドトリガ| |SIZE(20):Copy To Slave Plugin|This plugin allows to copy a set of files, from a location somewhere on the master node, to jobs' workspaces. It also allows to copy files back from the workspaces of jobs located on a slave node to their workspaces on the master one.|Agent Launchers and Controllers&br;ビルドラッパー&br;ビルド通知| |SIZE(20):ThinBackup|This plugin simply backs up the global and job specific configurations (not the archive or the workspace).|その他 (website)| |SIZE(20):Mask Passwords Plugin|This plugin allows masking passwords that may appear in the console|その他 (website)&br;ビルドラッパー| |SIZE(20):Build Trigger Badge Plugin|This plugin displays icon(s) representing the cause(s) of a build directly in the build history. It lets you quickly know which cause triggered a build.|ユーザーインタフェース| |SIZE(20):jQuery plugin|This plugin is a library plugin for other plugins to share common jQuery. It also allows users to use jQuery on each view descriptions.|Library plugins (for use by other plugins)| |SIZE(20):Node and Label parameter plugin|This plugin adds two new parameter types to job configuration - node and label, this allows to dynamically select the node where a job/project should be executed.|Agent Launchers and Controllers&br;Build Parameters&br;ビルドトリガ| |SIZE(20):Build Pipeline Plugin|This plugin provides a _Build Pipeline View_ of upstream and downstream connected jobs that typically form a build pipeline. In addition, it offers the ability to define manual triggers for jobs that require intervention prior to execution, e.g. an approval process outside of Jenkins.|ビルドツール&br;ビルド後のアクション&br;ユーザーインタフェース| |SIZE(20):Publish Over CIFS|Send build artifacts to a windows share (CIFS/SMB/samba)|成果物のアップロード| |SIZE(20):Selenium Auto Exec Server(AES) plugin|This plugin is for continuous regression test by Selenium Auto Exec Server (AES).|ビルドツール&br;ビルドレポート| |SIZE(20):Mercurial plugin|This plugin integrates the Mercurial version control system with Jenkins.|ソース管理システム| |SIZE(20):Associated Files Plugin|This plugin allows for marking files or directories outside of Jenkins as related to a build.|ビルド後のアクション| |SIZE(20):Hudson Locks and Latches plugin|This plugin allows you to control the parallel execution of jobs.|ビルドトリガ&br;ビルドラッパー| |SIZE(20):File System SCM|Use File System as SCM.|ソース管理システム| |SIZE(20):Role-based Authorization Strategy|Adds a new role-based strategy to manage users' permissions.|Security&br;認証/ユーザー管理| *グローバルセキュリティの設定 [#jd94918e] 参考URL http://qiita.com/west-hiroaki/items/410a76c96ad57c8cb547 &br; **「Jenkinsの管理」 を選択 [#n1bed4dd] **「グローバルセキュリティの設定」 を選択 [#f00dbd86] ***「セキュリティを有効化」をチェック [#ufb0ca0e] ***「Jenkinsのユーザーデータベース」をチェック [#s699c681] ***「ユーザーにサインアップを許可」のチェックをはずす [#af6e6838] ***「Role-Based Strategy」をチェック [#h3d834f5] -自動的に「ログイン済みユーザーに許可」のチェックがはずれる ***「保存」を選択 [#g4024ac8] *Jenkinsにログインするユーザーの作成/削除/変更 [#b766cb36] **adminでJenkinsにログインする [#ye07f4c2] **「Jenkinsの管理」 を選択する [#wca7db21] **「ユーザーの管理」 を選択する [#se7a6e20] -Jenkinsの「ユーザー」一覧 画面が表示される -admin ユーザーのみが表示されている **画面左側の 「ユーザー作成」 を選択する [#c1821335] -「ユーザー作成」 画面が表示される **新規ユーザの情報を入力する [#sdd6335a] ユーザー名: john パスワード: john パスワードの確認: john フルネーム: John Smith メールアドレス: john@smith **「ユーザー作成」 ボタンを選択する [#m3c97f85] -Jenkinsの「ユーザー」一覧 画面が表示される -いま作成した新規ユーザが追加されている *Jenkinsにログインするユーザーの権限設定 [#a8620820] **権限の作成 [#d78bf0de] プラグインをインストールした直後は、全てのアクションが可能なadmin権限しか無いので、その他の権限を作成します。&br; 例として、閲覧と既存ジョブが実行可能なoperator権限を作成します。&br; ***「Jenkinsの管理」 を選択 [#t096b34c] ***「Manage and Assign Roles」 を選択 [#l814b70f] -「Manage and Assign Roles」画面が表示される ***「Manage Roles」 を選択 [#o6f8c800] ***「Global roles」の「Role to add」に「operator」と入力してAddボタンを押す。 [#ied0d032] -一覧にoperatorが追加される ***以下の権限にチェックする。 [#i0527710] -「全体」の「Read」 -「ジョブ」の「Build」, 「Cancel」, 「Read」 -「ビュー」の「Read」 ***「Save」ボタンを押して権限設定を反映させる。 [#m4583720] **ユーザーに権限を付与 [#j4b6d434] 作成したユーザーと権限を紐付けます。&br; ***「Jenkinsの管理」 を選択 [#y9d12abc] ***「Manage and Assign Roles」 を選択 [#c5306470] -「Manage and Assign Roles」画面が表示される ***「Assign Roles」 を選択 [#l3ab7ddc] -「Assign Roles」画面が表示される ***「User/group to add」に「john」と入力して、Addボタンを押す。 [#v210ff99] -Global roles に「john」が追加される ***Global rolesの各ユーザーに権限を付与する。 [#e23b3160] -ユーザー「john」は、operatorにチェック ***「Save」ボタンを押して権限設定を反映させる。 [#m4583720] *Jenkinsがjob実行でsudoを使用しても、パスワード入力を省略できるようにする [#a3eb24bc] **Jenkinsのjob実行processを調査する [#rddfa00e] ***job作成 confirm_processes [#y724eadc] # $HOMEを確認する echo "HOME: ${HOME}" # current directoryを確認する work_dir=`pwd` echo "work_dir: ${work_dir}" # process idを確認する echo "pid of this job : $$" pid_of_this_job="$$" # 指定したprocess idのprocessの情報を確認する ps auxcf | grep -i --color -e "^USER\|${pid_of_this_job}" ***job実行 [#o29b22fc] 実行結果 USERは jenkins だ。$HOMEは /var/lib/jenkins だ。 ビルドします。 ワークスペース: /var/lib/jenkins/workspace/confirm_processes [confirm_processes] $ /bin/sh -xe /tmp/hudson1474396497236908427.sh + echo HOME: /var/lib/jenkins HOME: /var/lib/jenkins + pwd + work_dir=/var/lib/jenkins/workspace/confirm_processes + echo work_dir: /var/lib/jenkins/workspace/confirm_processes work_dir: /var/lib/jenkins/workspace/confirm_processes + echo pid of this job : 2750 pid of this job : 2750 + pid_of_this_job=2750 + ps auxcf + grep -i --color -e ^USER\|2750 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND jenkins 2750 0.0 0.0 4508 708 ? S 11:16 0:00 \_ sh Started calculate disk usage of build Finished Calculation of disk usage of build in 0 seconds Started calculate disk usage of workspace Finished Calculation of disk usage of workspace in 0 seconds Notifying upstream projects of job completion Finished: SUCCESS **すべてのコマンドのパスワード入力を省略する [#ie2389ae] ***visudoを使ってsudoersファイルを編集 [#i721b3db] $ sudo visudo 下記を追記する jenkins ALL=NOPASSWD: ALL 編集後 1 # 2 # This file MUST be edited with the 'visudo' command as root. 3 # 4 # Please consider adding local content in /etc/sudoers.d/ instead of 5 # directly modifying this file. 6 # 7 # See the man page for details on how to write a sudoers file. 8 # 9 Defaults env_reset 10 Defaults mail_badpass 11 Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" 12 13 # Host alias specification 14 15 # User alias specification 16 17 # Cmnd alias specification 18 19 # User privilege specification 20 root ALL=(ALL:ALL) ALL 21 jenkins ALL=NOPASSWD: ALL 22 # Members of the admin group may gain root privileges 23 %admin ALL=(ALL) ALL 24 25 # Allow members of group sudo to execute any command 26 %sudo ALL=(ALL:ALL) ALL 27 28 # See sudoers(5) for more information on "#include" directives: 29 30 #includedir /etc/sudoers.d *システムの設定 [#lb002409] **Jenkinsの位置 [#ja3cc333] |Jenkins URL|http://<jenkins_host>:<port>/jenkins/| *nodeの設定 slave node側 [#md9bc73e] **nodeのhostname確認 [#eeb31dd6] $ cat /etc/hostname ubdt12045 **jenkins slave用のuserを作成する [#g640f2da] user名: jenkins_slave_<hostname> にしよう # adduser jenkins_slave_ubdt12045 **sudoグループに追加 [#f5830147] # gpasswd -a jenkins_slave_ubdt12045 sudo **すべてのコマンドのパスワード入力を省略する ubuntu12.04の場合 [#r8c971e3] # visudo -変更前 %sudo ALL=(ALL:ALL) ALL -変更後 %sudo ALL=(ALL:ALL) NOPASSWD:ALL **ssh serverをインストール [#g545bf88] sudo apt-get install ssh **ssh鍵生成しておく [#p9aafe49] ~$ ssh-keygen -t rsa &color(fuchsia){パスフレーズは空を指定すること。}; *nodeの設定 master側 [#z2b6aed8] **ssh鍵生成しておく [#pe40dffc] $ cd ~ ~$ ssh-keygen -t rsa &color(fuchsia){パスフレーズは空を指定すること。};&br; &color(fuchsia){このとき作成される下記のファイル名を変えてはいけない。};&br; .ssh/id_rsa .ssh/id_rsa.pub **Jenkins->認証情報 画面にて 認証情報の追加 予め作成しておく。あとでNode新規作成時に認証情報として指定する[#ja50bda8] http://<jenkins_host>:<port>/jenkins/credentials/store/system/domain/_/newCredentials |設定項目|設定値|h |種類|「SSHユーザー名と秘密鍵」を選択する| |スコープ|グローバル| |ユーザー名|jenkins_slave_ubdt12045| |秘密鍵|「Jenkinsマスター上の~/.sshから」を選択する| |パスフレーズ|空欄にする(ssh-keygen実行時のパスフレーズを指定する)| |ID|空欄にする(あとで自動的に決定される)| |説明|| &color(fuchsia){ユーザー名として指定した、jenkins_slave_ubdt12045 という名前の認証情報が作成される。}; **まずはスレーブを作ってみる [#w9ee3cc4] -Jenkinsの管理>ノードの管理>新規ノード作成 を選択 **新規ノード作成画面にて [#t7c9ab3d] http://<hostname>:<port>/jenkins/computer/ -ノード名を入力 ubdt12045 -Permanent Agent ラジオボタンを選択 -OK を選択する **ノード編集画面にて [#se4254db] http://<hostname>:<port>/jenkins/computer/createItem |設定項目| 設定値|h |ノード名| ubdt12045| |説明| | |同時ビルド数| 1| |リモートFSルート| /home/jenkins_slave_ubdt12045| |ラベル| ONE_OF_BUILD_PCs ONE_OF_UBUNTU_1404_PCs (例)slave nodeの特性を表す文字列を空白文字で区切る形式)| |用途| このマシーンを特定ジョブ専用にする| |起動方法| SSH経由でUnixマシンのスレーブエージェントを起動| |ホスト| スレーブマシンのipアドレス| |認証情報| なし でとりあえず作成| |認証情報| jenkins_slave_ubdt12045 という名前の認証情報 を選択 でとりあえず作成| |Host Key Verification Strategy| Known hosts file Verification Strategy を選択| -保存 を選択 まだ接続できない&br; **Jenkins->認証情報 画面にて 認証情報の追加 予め作成しておく。あとでNode新規作成時に認証情報として指定する[#ja50bda8] http://<jenkins_host>:<port>/jenkins/credentials/store/system/domain/_/newCredentials |設定項目|設定値|h |種類|「SSHユーザー名と秘密鍵」を選択する| |スコープ|グローバル| |ユーザー名|jenkins_slave_ubdt12045| |秘密鍵|「Jenkinsマスター上の~/.sshから」を選択する| |パスフレーズ|空欄にする(ssh-keygen実行時のパスフレーズを指定する)| |ID|空欄にする(あとで自動的に決定される)| |説明|| &color(fuchsia){ユーザー名として指定した、jenkins_slave_ubdt12045 という名前の認証情報が作成される。}; **jenkins ユーザーになって、一度はslaveへssh接続しておく [#i822682e] $ sudo su jenkins $ cd ~ ~$ pwd /var/lib/jenkins ~$ ssh jenkins_slave_ubdt12045@<slave ip address> -exitして、master側へ戻る。 **jenkins ユーザー のままで、slave側をknown_hostを取り込んでおく [#z300b100] -ssh-keygen -R hostname は ~/.ssh/known_hosts から対象ホストのホストキーを削除してくれる。 ~$ ssh-keygen -R <slave ip address> -ssh-keyscan は対象ホストのホストキー一覧を取得するコマンド。 -~-Hオプションを付けるとホスト名がハッシュ化される、無しなら昔ながらに生のホスト名で出力される。今時はハッシュ化しとけば良いと思う。 ~$ ssh-keyscan -H <slave ip address> >> ~/.ssh/known_hosts **master側の公開鍵をslave側へ渡す [#p8fe2a9e] $ scp -P 22 ~/.ssh/id_rsa.pub jenkins_slave_ubdt12045@<slave ip address>:~/.ssh/authorized_keys &color(fuchsia){master側の公開鍵をslave側のauthorized_keysファイルへ渡す(アペンドする)ことで、接続されるようになります!};&br; *その他 [#o9e30fec] **Disable security [#qb46dde2] https://wiki.jenkins-ci.org/display/JENKINS/Disable+security **[Jenkins] ビルドトリガ(定期的に実行)設定についてのまとめ [#z10cbc18] http://qiita.com/koara-local/items/79cb9c08e77ac9d94b1d **master and slave [#p4b72d1b] [[Dockerコンテナを使って自動ビルドを実行する>http://knowledge.sakura.ad.jp/knowledge/5433/]]&br; [[Jenkins のスレーブを設定する>http://qiita.com/tototoshi/items/d4e380fd40f0619bbf57]]&br; [[【ぼっさんのJenkins講座】マスタースレーブを体験しよう – ノード作成編>http://bucket.gift/2017/01/28/bossan-jenkins-2/]]&br; 認証情報の追加 予め作成しておく。あとでNode新規作成時に認証情報として指定する。&br; http://<jenkins_host>/jenkins/credentials/store/system/domain/_/newCredentials &br; |種類|SSHユーザー名と秘密鍵| |スコープ|グローバル| |ユーザー名|スレーブ側のユーザー名/home/salve/なら「slave」にする| |秘密鍵|マスター側jenkinsで ssh-keygen でid_rsaをつくったときの.pubがついてないほうのファイルを指定する。それか直接テキスト指定する。| |パスフレーズ|マスター側jenkinsで ssh-keygen でid_rsaをつくったときのパスワード。パスワード無しで作成しておく。| |ID|空欄| |説明|認証情報を区別するための説明です。認証情報はスレーブ側のユーザー名のぶんだけ別に必要| [[SSHのknown_hostsをスマートに更新する>http://qiita.com/kawaz/items/20983ec286088a1ae5c7]] [[開発者(個人)のためのJenkins - Slave編>http://qiita.com/yasuhiroki/items/d618796a1ba1366c4f80]] [[Jenkins Master-Slave setup and configuration with screenshots>http://scmquest.com/jenkins-master-slave-setup-and-configuration-with-screenshots/]] *example [#c92b7bc4] **slave側 [#xb8d2ac0] -known_hostsファイルは無い。authorized_keysファイルは有る jenkins_slave_ubdt12045@ubdt12045:~$ ls -la .ssh/ 合計 20 drwx------ 2 jenkins_slave_ubdt12045 jenkins_slave_ubdt12045 4096 4月 2 22:34 . drwxr-xr-x 21 jenkins_slave_ubdt12045 jenkins_slave_ubdt12045 4096 6月 27 20:38 .. -rw-r--r-- 1 jenkins_slave_ubdt12045 jenkins_slave_ubdt12045 393 4月 2 22:34 authorized_keys -rw------- 1 jenkins_slave_ubdt12045 jenkins_slave_ubdt12045 1679 4月 2 22:17 id_rsa -rw-r--r-- 1 jenkins_slave_ubdt12045 jenkins_slave_ubdt12045 415 4月 2 22:17 id_rsa.pub -slave側の .ssh/authorized_keys ファイルは master側の /var/lib/jenkins/.ssh/id_rsa.pub と同じ jenkins_slave_ubdt12045@ubdt12045:~$ cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD64FmEq7wQtyuZsi2dMK0N9UJz54aa0Xxx4bXonuLx5iucGz8ZSqDK7kWFN6LemqPursnNWArZVH9xV1QpSQVw0ZAbNEIKefn3WehK8FlNDJR+xyMx5p0Tas5qGEqRmUn7LyyTNAPqcKyC1RELPfwUD3zNqLcT+ZWX9RBLSUGXqPS3oonzy3PlrDhKdnd90I8yMoSc8N6DyydGsUiyDMK5lM6f5yZ9/oVCRQOjVKLCynqxT9cnJBEyDz83k6s9ZAeiVVEpyFBEhEbCmN/8uRtoY3+cnraRxTkThmcKeZrXRO3Z+5eJ7TwiFboeGSbYx8K5l3DPpae8SCuXrSED+rbP jenkins@ryu jenkins_slave_ubdt12045@ubdt12045:~$ **master側 [#w047857e] -master側の /var/lib/jenkins/.ssh/ には known_hosts が必要 jenkins_master@ryu:~$ sudo ls -la /var/lib/jenkins/.ssh/ 合計 24 drwx------ 2 jenkins jenkins 4096 4月 1 20:51 . drwxr-xr-x 19 jenkins jenkins 4096 6月 27 18:33 .. -rw-r--r-- 1 jenkins jenkins 392 4月 1 20:51 authorized_keys -rw------- 1 jenkins jenkins 1675 4月 1 18:22 id_rsa -rw-r--r-- 1 jenkins jenkins 393 4月 1 18:22 id_rsa.pub -rw-r--r-- 1 jenkins jenkins 1914 4月 2 22:20 known_hosts -master側の /var/lib/jenkins/.ssh/id_rsa.pub は slave側の .ssh/authorized_keys ファイルと同じ jenkins_master@ryu:~$ sudo cat /var/lib/jenkins/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD64FmEq7wQtyuZsi2dMK0N9UJz54aa0Xxx4bXonuLx5iucGz8ZSqDK7kWFN6LemqPursnNWArZVH9xV1QpSQVw0ZAbNEIKefn3WehK8FlNDJR+xyMx5p0Tas5qGEqRmUn7LyyTNAPqcKyC1RELPfwUD3zNqLcT+ZWX9RBLSUGXqPS3oonzy3PlrDhKdnd90I8yMoSc8N6DyydGsUiyDMK5lM6f5yZ9/oVCRQOjVKLCynqxT9cnJBEyDz83k6s9ZAeiVVEpyFBEhEbCmN/8uRtoY3+cnraRxTkThmcKeZrXRO3Z+5eJ7TwiFboeGSbYx8K5l3DPpae8SCuXrSED+rbP jenkins@ryu jenkins_master@ryu:~$ -master側にて slave側(192.168.3.13)に対して、ssh-keyscan -H 192.168.3.13 jenkins_master@ryu:~$ ssh-keyscan -H 192.168.3.13 # 192.168.3.13:22 SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.10 ①|1|IbrVQ6AGPcnZjb1bg12TQSDVqbw=|7MD0OSNXgRD5Sbsyccx9ZwHaBSU= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8OdszqQYHJjuWDmsW3CRO9udWfMF3W21x0Ci5hO4v+Ot0CWr0mi4EcChYTZZfmDGLaxh+g54V+YhIkDt4y4HjQPE3bKqWifV0v26mcGeE+WBYK3+0LAGsGTbY8GDsprSegbo/RpLZhkpXHe+cG9LH4spoJ9R0Ywat31Oum6fgBd4jnJq6GZufwng438J88GebmHcUfUlkQ84z4Whj/MxYQFxnbHgfMeO87dHU1jDYvDYohIVxYw6MCQkgsgJXnmk6WIt5JBD8opVIVovt1DWjeqfcFdNMAObi2iIcpoxOPl+7VNiexe8iR7xPnQXrLk+R4pwc1rlTD10uWbF5Ij9f # 192.168.3.13:22 SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.10 ②|1|v6AzmrzF/Xxkdv3zojMuzW83A2Y=|+fn4zmtzwOrtkKMF87MYjajmAns= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDw058kch00nuVjT6h8Ip0k0q97vf1mGMyWIZHHb+hjjlsV17Bjs5LIQxxBE+EucGnXHT96TQkRW3Fxfz5fUUtg= # 192.168.3.13:22 SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.10 jenkins_master@ryu:~$ -master側にて /var/lib/jenkins/.ssh/known_hosts の中身をみてみると・・・ sudo cat /var/lib/jenkins/.ssh/known_hosts jenkins_master@ryu:~$ sudo cat /var/lib/jenkins/.ssh/known_hosts |1|YyORgEx2VGz7TxxHcLaG9eYiBII=|fJbJHillT/v40/rzjaz1oKYqwrs= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK80ApPuNcCciu/6M8FrCybAnmZVLZML7O7bI9leGH3CsiQzIJawro84Ql6YTC0BQTDU7du/6SOu/3+bv5gOXVM= |1|ZPV6QgFXxW8AnKJCo0La7H6nG3c=|v1Cbbk3JeYMvbriv2mHzpIC7l7o= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3Q4nIWIcCooZJrMMdJEKG8lJ2x2AV4CQyQRipZYsdQ/6uf2FKrJ2chv1lTuh4rf3TJ1m8X0rrwowrznmC1X0pwv12NJ8DRi5gKmGXZW+4jfm6jI64X36FGmKuNHpbQFI4EYRZ2brw3C7n+sEeugLTZsECsnRogaP4rS5H4chgfFZr2Yd6tjW9QByEZa3Ne0Jb/syKrww3jh663TnZqwmBGxBh3XB1JxzXwDkXpOww/vWXw8oMzLNvUayTzM8AxiD/ZZTBMd1CZiZQMb6JqoNHnKwH4NpLO1MLg7E5FoYjqWXkZWrAktoOcyiAnB0qRzc/OueErVI7JDrzSDKhhM57 |1|24/Q3eYsAEB09s+N19nDEXZpJ4M=|CkEUAZ4+npXleidFkMVVLicZxbw= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK80ApPuNcCciu/6M8FrCybAnmZVLZML7O7bI9leGH3CsiQzIJawro84Ql6YTC0BQTDU7du/6SOu/3+bv5gOXVM= |1|NhJMkyvw9mOOTu5Zrmzjuds/C4s=|fA8CTs3TLkATcUDPc77BlLkL3pw= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJkVGNw3SmxSIImXko1un7CRX8MlL7jkfoZDaMWUw2PG |1|6SsqtrKDZkQ+iKQdOdQQqdsYdcw=|fKZY6xrchYiDh5lQCHPRWi5BH10= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDw058kch00nuVjT6h8Ip0k0q97vf1mGMyWIZHHb+hjjlsV17Bjs5LIQxxBE+EucGnXHT96TQkRW3Fxfz5fUUtg= ②|1|n9Oa9YTgVosAu2rDZMwuQwFf8G0=|5nn8Mkeggp0RdR/56bb/F1n+imY= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDw058kch00nuVjT6h8Ip0k0q97vf1mGMyWIZHHb+hjjlsV17Bjs5LIQxxBE+EucGnXHT96TQkRW3Fxfz5fUUtg= ①|1|c57dMJgWXDemGyJENOwFWdTsnzY=|8bG6E8a6zZrIIe2vYeNk4rFgiHo= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8OdszqQYHJjuWDmsW3CRO9udWfMF3W21x0Ci5hO4v+Ot0CWr0mi4EcChYTZZfmDGLaxh+g54V+YhIkDt4y4HjQPE3bKqWifV0v26mcGeE+WBYK3+0LAGsGTbY8GDsprSegbo/RpLZhkpXHe+cG9LH4spoJ9R0Ywat31Oum6fgBd4jnJq6GZufwng438J88GebmHcUfUlkQ84z4Whj/MxYQFxnbHgfMeO87dHU1jDYvDYohIVxYw6MCQkgsgJXnmk6WIt5JBD8opVIVovt1DWjeqfcFdNMAObi2iIcpoxOPl+7VNiexe8iR7xPnQXrLk+R4pwc1rlTD10uWbF5Ij9f -つまりmaster側にて slave側(192.168.3.13)に対して、下記のコマンドをすることでslave側の情報をmaster側へとりこむとよい ssh-keyscan -H 192.168.3.13 >> /var/lib/jenkins/.ssh/known_hosts *example2 JNLPでNode起動 [#c90471df] http://kazuhito-m.github.io/tech/2016/12/02/jenkins-webstart-node-invisible **master側 [#za8d1e99] ***Jenkinsの画面にて、 Jenkinsの管理 -> グローバルセキュリティの設定 画面へ行く [#w00f821a] -TCP port for JNLP agents という選択肢が、最初は 無効 になっています。 -これを ランダム を選択するか 固定 でポートを指定して、設定保存をします。 ***Jenkinsの画面にて、 Jenkinsの管理 -> ノードの管理 -> 新規ノード作成 で、ノードを作成 [#z83b827c] |ノード名|ubdt12045.test| |リモートFSルート|/home/jenkins_slave| |ラベル |ubdt12045.test| |起動方法|Launch agent via Java Web Start| 設定を保存する。 ***以下が表示される [#z39efa31] Connect agent to Jenkins one of these ways: -Launch agent from browser -Run from agent command line: java -jar slave.jar -jnlpUrl http://<jenkins master hostname>:<port>/jenkins/computer/ubdt12045.test/slave-agent.jnlp -secret <文字列> **slave側 [#d45fdbb6] *** javaをインストールしておく [#l3abb5c0] *** slave.jar をmasterから取得しておく [#t158b55c] ~$ cd /home/jenkins_slave ~$ wget http://<jenkins master hostname>:<port>/jenkins/jnlpJars/slave.jar ***slave.jar を実行 [#c9d85745] ~$ java -jar slave.jar -jnlpUrl http://<jenkins master hostname>:<port>/jenkins/computer/ubdt12045.test/slave-agent.jnlp -secret <文字列> & -これでmasterからnodeとしてみえる