LoginSignup
4

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-11-26

環境構築

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

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 マークダウン記法 一覧表・チートシート

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
4