LoginSignup
0
2

More than 5 years have passed since last update.

出来るだけ最短で Jenkins 環境を試したい(jenkins container + docker CE + CentOS7 + vagrant)

Last updated at Posted at 2017-03-14

出来るだけ最短で Jenkins 環境を試したい(jenkins container + docker CE + CentOS7 + vagrant)

  • Install jenkins container on vagrant centos7 box

目的

  • jenkins を取り急ぎ使ってみたい
  • できるだけ楽に構築したい
    • OS は vagrant でデプロイする(CentOS7)
    • jenkins は公式で docker コンテナを出してくれているので利用する

前提

  • vagrant + CentOS7 Box が利用できる
  • Unix ホストもしくはそれと同等のホスト環境
    • ssh クライアントツール類がある

既知の問題への対応 (2017/03/10 時点)

制限: 公式 jenkins 配布コンテナは UID 1000 の jenkins ユーザーで動作する

問題: CentOS7 公式 Box の vagrant ユーザーの UID が 1000 で衝突する

[vagrant@localhost ~]$ id
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)

対応方法1: 別ユーザーを作成してから vagrant ユーザーの UID を変更してからコンテナを起動する

  • 手順の中で記載します

対応方法2: 力技で vagrant ユーザーの UID を変更する

  • 今回は詳細には記載しませんが以下のような方法でも可能かと思います
sudo vi /etc/passwd
sudo chown -R 1001:1000 /home/vagrant

cd /home/vagrant/
find . -user 1000 -exec chown -h vagrant {} \;

リファレンス

事前準備

  • On Host OS
    • Vagrant File
% cat Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.box = "centos/7"
  config.vm.network "private_network", type: "dhcp"
end

% vagrant up
% vagrant ssh
  • On CentOS7 Box
あとでHostとの通信に使います
[vagrant@localhost ~]$ ip addr show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:1c:5f:47 brd ff:ff:ff:ff:ff:ff
    inet 172.28.128.6/24 brd 172.28.128.255 scope global dynamic eth1
       valid_lft 1078sec preferred_lft 1078sec
    inet6 fe80::a00:27ff:fe1c:5f47/64 scope link
       valid_lft forever preferred_lft forever

BOX_DCHP_IP_ADDR としてメモ

USERNAME1=hirofumi
sudo useradd -m -u 1001 -g vagrant $USERNAME1
sudo su - $USERNAME1

mkdir .ssh
chmod 700 .ssh/
exit

sudo passwd $USERNAME1
exit
  • On Host OS
% ssh-keygen -t rsa -f ./id_rsa
Box上の.ssh/authorized_keysに貼り付け用コピー
% cat id_rsa.pub
  • On CentOS7 Box
id_rsa.pubの内容を貼り付け
USERNAME1=hirofumi
sudo su - $USERNAME1
cd .ssh
vi authorized_keys
chmod 600 authorized_keys
exit
exit
  • On Host OS
% USERNAME1=hirofumi
% ssh -i ./id_rsa $USERNAME1@<BOX_DCHP_IP_ADDR>

ここまでで別ユーザーでの接続が完了

  • On CentOS7 box
sudo id vagrant
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)

sudo usermod -u 1002 vagrant

sudo id vagrant
uid=1002(vagrant) gid=1000(vagrant) groups=1000(vagrant)

grep 1000 /etc/passwd
vagrant:x:1002:1000:vagrant:/home/vagrant:/bin/bash
hirofumi:x:1001:1000::/home/hirofumi:/bin/bash

UID 1000 のユーザーがいなければ準備完了です

exit

手順

1. Docker CE のインストール

  • On Host OS
vagrantユーザーで再ログイン
vagrant ssh
  • On CentOS7 Box

ref. https://docs.docker.com/engine/installation/linux/centos/#install-using-the-repository

sudo yum -y update
sudo yum install -y yum-utils

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

sudo yum makecache fast

sudo yum install docker-ce

sudo systemctl status docker
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker

sudo docker run hello-world

sudo docker --version
Docker version 17.03.0-ce, build 3a232c8

2. jenkins ユーザーの追加

sudo useradd -u 1000 jenkins
mkdir jenkins
sudo chown jenkins: jenkins/

3. jenkins コンテナ起動

sudo docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home:z -t jenkins
コンテナID確認
[vagrant@localhost ~]$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                NAMES
b676e38e4d66        jenkins             "/bin/tini -- /usr..."   37 seconds ago      Up 34 seconds       50000/tcp, 0.0.0.0:49001->8080/tcp   gifted_fermi

CONTAINER_ID=b676e38e4d66
jenkinsパスワードの確認
$ sudo docker exec $CONTAINER_ID cat /var/jenkins_home/secrets/initialAdminPassword

コピペ出来るように準備

4. ブラウザ確認

  • On Host OS

メモっておいた BOX_DCHP_IP_ADDR に 49001 ポートでアクセスします。

http://BOX_DCHP_IP_ADDR:49001

以下の画面が表示されていれば成功です

Screenshot 2017-03-15 03.37.20.png

手順 3. で準備しておいたパスワードをコピペ

5. おすすめに従って Install suggested plugins に進みましょう

Screenshot 2017-03-15 03.41.55.png

6. しばし待つ

Screenshot 2017-03-15 03.43.08.png

7. Adminユーザーを作ります

Screenshot 2017-03-15 03.46.10.png

Screenshot 2017-03-15 03.47.11.png

8. おわり

Screenshot 2017-03-15 03.47.37.png

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2