Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

環境構築

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

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away