メンチカツには醤油でしょ!!

ITエンジニア徒然 (AWS/Java/JavaScript/Google Spreadsheets/Jenkins/Mac/外部コミュニティ・勉強会レポ)

Amazon LightsailにJenkinsがないので、自分でインストール

経緯

cronで起動するシェルを実行したい時とかって、CloudWatch⇒AWS Lambdaって構成もいいんですが、もう少しこねくりまわしたい時や、処理後のインテグレーションがより簡単な方が良いなぁ、と考えるとJenkinsが使いたくなったりする時があると思います。

Lightsailに元々あると良いのですがなかったので自分で入れたときのメモです。

セットアップ手順

インスタンス作成へ

Lightsailからインスタンスの作成をクリック。

f:id:ryoichi0102:20171211121430j:plain

オプションの選択

インスタンスイメージの選択 内の 設計図の選択 で OSのみ をクリックし Ubuntu を選択。
ロケーションやインスタンスプラン・インスタンス名を確認のうえ、最下部の作成をクリック。

f:id:ryoichi0102:20171211121444j:plain

パブリックIPの確認/ポートの開放

Jenkinsは8080を使うので開けておきます。
と同時にパブリックIPも確認しておきます。
インストールが完了したらhttp://【パブリックIP】:8080/ でアクセスします。

f:id:ryoichi0102:20171212213952j:plain

SSHを使用して接続

f:id:ryoichi0102:20171212211451j:plain

タイムゾーンAsia/Tokyoに変更

Jenkinsでタイマー処理などをする際はJSTの方が見易いので変更します。

$ sudo timedatectl set-timezone Asia/Tokyo

Java8をインストール

$ sudo add-apt-repository ppa:webupd8team/java

$ sudo apt-get update

$ sudo apt-get install oracle-java8-installer

Jenkinsをインストール

$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

$ sudo apt-get update

$ sudo apt-get install jenkins

Jenkins自動起動設定

$ sudo apt-get install sysv-rc-conf

$ sudo sysv-rc-conf jenkins on

Jenkinsの設定

http://【パブリックIP】:8080/ でアクセスすると画面が出てきます。
なお、何かの間違いでログインできなくなったら

$ sudo vi /var/lib/jenkins/config.xml

で<useSecurity>false</useSecurity>に編集して

$ sudo service jenkins restart

で再始動すると半ログイン状態になるので、ユーザーを作成しておきます。

参考

Ubuntu 16.04 LTS : システムのタイムゾーンを設定する : Server World

UbuntuにJava8環境構築 - Qiita

Debian Repository for Jenkins

[Jenkins][Ubuntu] UbuntuにJenkinsをインストール - Qiita

ubuntu版chkconfigのsysv-rc-confを使う - Qiita

Jenkinsでログインできなくなった時の対処法 - としたにあんの左脳