Ubuntuを最新にする
sudo apt update
sudo apt upgrade
# 必要であれば再起動
sudo reboot
Java11をインストール
sudo apt install default-jdk
sudo apt install default-jdk-headless
Dockerをインストール
公式サイトを参考:https://docs.docker.com/install/linux/docker-ce/ubuntu/
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Jenkinsをインストール
UbuntuにはすでにJenkinsのパッケージがあるので、apt経由でインストールできます:http://pkg.jenkins-ci.org/debian/
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
/etc/apt/sources.list
を開いて、下記の行を追加:
deb https://pkg.jenkins.io/debian binary/
インストール:
sudo apt-get update
sudo apt-get install jenkins
これでJenkinsはすでにポート8080
に動いている、このまま使ってもいいが、NginxをgatewayにしてSSLも実装しちょおう!
NginxとSSL実装
Nginxをインストール
sudo apt update
sudo apt install nginx
Certbotをインストール
公式サイト参考: https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-nginx
<ドメイン>
のSSL証明書を発行:
sudo certbot certonly --nginx -d <ドメイン>
Nginxの設定、ファイル/etc/nginx/sites-available/jenkins.conf
を新規して、下記の内容を記入:
<ドメイン>
を自分のドメイン名にしてください。
server {
listen 80;
server_name <ドメイン>;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name <ドメイン>;
server_tokens off;
ssl_certificate /etc/letsencrypt/live/<ドメイン>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<ドメイン>/privkey.pem;
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Fix the "It appears that your reverse proxy set up is broken" error.
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 90;
proxy_redirect http://127.0.0.1:8080 <ドメイン>;
# Required for new HTTP-based CLI
proxy_http_version 1.1;
proxy_request_buffering off;
# workaround for https://issues.jenkins-ci.org/browse/JENKINS-45651
add_header 'X-SSH-Endpoint' '<ドメイン>:50022' always;
}
}
設定をリンクする:
ln -s /etc/nginx/sites-available/jenkins.conf /etc/nginx/sites-enabled/jenkins
# デフォルトの設定を削除
rm /etc/nginx/sites-enabled/default
設定をチェック
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
問題なければ、Nginx再起動で設定を有効化する:
sudo service nginx restart
今はmaster一台しかない状態ですが、必要に応じて追加していけばいいかなと思います!