オフラインでの自動化検証環境構築(手動)


環境構築

よんどころない事情によって、オフライン環境(=インターネットに疎通性がないクローズドな環境)で自動化環境を構築した際のメモ。

Vagrant部分に相当するサーバ構築は、DockerでもVMware Playerでもベアメタルでもお好きなものでどうぞ。

Jenkins、Mattermostは便利そうなのでいずれ思いますが、「習熟が~、管理が~、学習コストが~」と言われそうなので、ひとまず保留…(´・ω・`)

資材のダウンロード

オフラインでの環境構築になるため、あらかじめ資材をダウンロードします。

資材をダウンロードする歳、必ず経由するCentOS(オンライン)上ではyumでパッケージを管理しているため、CentOS(オフライン)上ではお手軽に「rpm -ivh XXXXX」でインストールします。

また、Pythonのライブラリを手軽にダウンロードするために、CentOS(オンライン)上にPythonをインストールしています。

CentOS(オンライン)
yum install -y epel-release git curl wget

# 各アプリ用ディレクトリ作成
cd /tmp
mkdir -p tools python pip gitlab ansible jenkins mattermost

# 各種ツール
yum install -y --downloadonly --downloaddir=tools epel-release jq createrepo wget

# python関連
yum install -y https://centos7.iuscommunity.org/ius-release.rpm
yum install -y --downloadonly --downloaddir=/tmp/python python34u python34u-libs python34u-devel python34u-pip

# pip関連
yum install -y python34u python34u-libs python34u-devel python34u-pip
pip install --upgrade pip
pip download -d /tmp/pip --no-binary :all simplejson requests pip python-dateutil lxml PyYAML py2exe pep8 tqdm Flask mysql-connector-python

# Ansible関連
yum install -y --downloadonly --downloaddir=/tmp/ansible ansible

# GitLab関連
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum install -y --downloadonly --downloaddir=/tmp/gitlab curl policycoreutils-python openssh-server postfix gitlab-ce

# jenkins
#curl -LkvOf --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u192-b12/750e1c8617c5452694857ad95c3ee230/jdk-8u192-linux-x64.rpm -o "./jenkins"
#curl -o /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
#rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
#yum install -y --downloadonly --downloaddir=jenkins jenkins

# Mattermost
#wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm -P ./mattermost
#wget https://releases.mattermost.com/5.5.0/mattermost-5.5.0-linux-amd64.tar.gz -P ./mattermost

Vagrant

Vagrant2.0.3を使ったCentOS7.4の環境構築

Windows(Cygwin)
cd [任意の作業用ディレクトリ]
vagrant init centos/7
vi Vagrantfile
Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.box_check_update = true
  config.vm.network "private_network", ip: "192.168.20.10"  config.vm.provider "virtualbox" do |vb|
   vb.memory = "4096"
  end
  config.vm.provision "shell", inline: <<-SHELL
   # yum -y update
   # yum -y upgrade
  SHELL
end
Windowsコマンドプロンプト
vagrant up
vagrant ssh
CentOS(オフライン)で実施
sudo -s

# root パスワード設定(★対話形式★)
passwd root

# ホスト名設定
hostnamectl set-hostname "workstation"

# hosts設定
echo "192.168.20.10 workstation" >> /etc/hosts

# タイムゾーン設定
timedatectl set-timezone Asia/Tokyo

# SELINUX無効化
sed -i.bak "/SELINUX/s/enforcing/disabled/g" /etc/selinux/config

# yum最新化
yum -y update
yum -y upgrade
Windows(Cygwin)
vagrant reload

Python

Python 3 を CentOS 7 に yum でインストールする手順

CentOS(オフライン)で実施
rpm -ivh /tmp/python/*
pip install --upgrade /tmp/pip-*
pip install /tmp/pip/*

GitLab

CentOS7にgitlabをインストール

CentOS(オフライン)で実施
# rpmインストール
rpm -ivh /tmp/gitlab/*

# ポート穴あけ(必要に応じて)
# firewall-cmd --permanent --add-service=http

# URL設定(★対話形式でexternal_urlを変更★)
vi /etc/gitlab/gitlab.rb

# 再構築
gitlab-ctl reconfigure

# 正常性確認 (htmlタグだ見えればたぶんOK)
curl http://workstation

Ansible

CentOS(オフライン)で実施
rpm -ivh /tmp/ansible/*

Jenkins

「習熟が~、管理が~」と言われそうなので、ひとまず保留…(´・ω・`)
JenkinsをCentOS 7にyumインストールする手順
JenkinsとGitLabを連携する方法

Mattermost

「習熟が~、管理が~」と言われそうなので、ひとまず保留…(´・ω・`)
Installing Mattermost on RHEL 7.1
JenkinsとGitLabとMattermostを連携する方法

参考にしたサイト

Qiita マークダウン記法 一覧表・チートシート