魔法使いの卵

WEBエンジニアの卵の成長記録

さくらVPSにjenkinsを導入した

はじめに

  • さくらVPSにjenkins載せてみたけど仮想環境とかのほうがセキュリティ上よさそう
  • 導入方法だけ一応メモとして残しておこうとおもっている

Javaのインストール

sudo yum install -y java-1.7.0-openjdk

Jenkinsのレポジトリをyumに追加

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

jenkinsをインストール

sudo yum install -y jenkins

Nginxを使ってベーシック認証時のjenkins側の設定

  • jenkinsの設定ファイルのバックアップ作成
sudo cp /var/lib/jenkins/config.xml /var/lib/jenkins/config.xml.org
  • jenkins設定ファイルを開く(ベーシック認証を行う場合)
sudo vim /var/lib/jenkins/config.xml
  • 以下のように設定を変更
<useSecurity>true</useSecurity>
              
              ↓
              
<useSecurity>flases</useSecurity>

jenkinsで利用するポートを変更したい場合

  • sudo vim /etc/sysconfig/jenkins
JENKINS_PORT="8080"

       ↓

例:JENKINS_PORT="利用したいポート番号"

ファイヤーウォールで許可するポートの追加

sudo firewall-cmd --zone=public --add-port=利用したいポート番号/tcp --permanent

ファイヤーウォールを再起動

sudo firewall-cmd --reload

jenkinsのセットアップ

  • jenkinsのinstallAdminPasswordを用意する
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  • IP:利用したいポート番号にブラウザでアクセス
  • AdminPasswordに上記コマンドで出したPasswordを貼り付ける
  • Install suggested pluginsをクリック(オススメのプラグイン)
  • デフォルトユーザの作成を行う

Nginxの設定

  • 導入は以下

raichel.hatenablog.com

  • confファイルを変更する
sudo vim /etc/nginx/conf.d/jenkins.conf
  • confの設定を記述する
server {
    listen 80;
    server_name jenkins.ドメイン名;
    location / {
        proxy_pass http://localhost:利用したいポート番号;
        auth_basic "Restricted";                   # 認証時に表示されるメッセージ
        auth_basic_user_file /etc/nginx/.htpasswd; # .htpasswdファイルのパス
        proxy_set_header Authorization "";
    }
}

jenkinsの起動

sudo systemctl start jenkins

nginxの起動

sudo systemctl start nginx

確認方法

  • jenkins.ドメイン名にブラウザからアクセスしてみる
  • ログイン画面が表示されていたら導入完了。

【僕のメモ】許可するポートの追加と削除

sudo firewall-cmd --zone=public --add-port=利用したいポート番号/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=利用したいポート番号/tcp --permanent

おもったこと

  • 外にServiceとして出すならともかく出したくないものを制御するのむずかしい
  • ベーシック認証も総当たり攻撃等されたらすぐ死にそうだしセキュアにする難しい
  • IP固定も考えたけど家と外で使う回線が違うのでなんだか微妙なかんじがした
  • セキュリティ周りとネットワークをもっとしっかり学習しないといけない(真顔)