CILinux

インフラCI実践ガイドを試してみる①【テスト環境の構築】

CI

インフラエンジニアの方で以下の書籍を読んだことがある方は多いかもしれません。

世の中ではよくプログラミング、とりわけWEBシステム開発を行っている方が、JenkinsやCircleCIなどを使ってCI/CDを紹介しており、実際の現場に導入しているイメージがあります。

ただ、インフラエンジニアの方でCIなどを活用している方はまだ少ないのではないかと思ってます。

私もインフラCIについてのイメージがあまり沸かずにいたのですが、今回「インフラCI実践ガイド」を購入しました。

この書式ではテスト環境を構築して、実際に演習を通じてインフラエンジニアのCIを体験することができるとのことです(まだ試してません)

今回は書籍に沿ってテスト環境の構築についてメモとなります。書籍でいうと第3章に当たります。

試した環境

  • Windows10 Pro バージョン1909
  • CPU:Intel Core i7-2600K
  • メモリ:24GB
  • ディスク:240GB (SSD)

最初メモリが12GBしか積んでおらず、途中まで試したのですが、結果的にスペック不足だったのでメモリを増築(12GB->24GB)しました。

3.5 環境構築の構築

3.5.1 CentOS7.4のインストール

今回はWindows10のPC上にHyper-Vを稼働させてCentOSを構築し、その中で仮想マシンを稼働させる構成でおこないました。

CentOSは最新のものをインストールしました。CentOSのインストールまでこちらにまとめました。

Hyper-Vで仮想Nestを許可する設定をする

演習では先ほど構築したCentOS上で仮想マシンを動作させる、いわゆる仮想ネストを利用しています。

そのため仮想Nestを許可する設定をします。

3.5.2 Git/Ansibleのインストール

作成したCentOS7にsshで接続して以下のコマンドからGitとAnsibleをインストールします。

# cd ~/
# curl -o setup.sh -L https://git.io/infra-ci.sh
# sh ./setup.sh
# reboot

3.5.3 VirtualBOx/Vagrantのインストールと設定

書籍のとおりに実行します。仮想マシンが作成されているところまで確認できました。完了まで10分くらいかかりました。

# git clone https://github.com/infra-ci-book/bootstrap-host.git
# cd bootstrap-host
# ansible-playbook site.yml
# cd ~/vagrant/infraci/
# vagrant status

もし以下のようなエラーが出たら仮想のネスト化が有効になってません。


[root@infraci bootstrap-host]# ansible-playbook site.yml

PLAY [Check available disk space] *******************************************************************************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************************************************************************************************
ok: [127.0.0.1]

TASK [diskspace : Check for a supported Operating System] *******************************************************************************************************************************************************************************************************************************************************************
ok: [127.0.0.1] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [diskspace : Get CPU info content and check the virt type] *************************************************************************************************************************************************************************************************************************************************************
ok: [127.0.0.1]

TASK [diskspace : Check the virt type] **************************************************************************************************************************************************************************************************************************************************************************************
fatal: [127.0.0.1]: FAILED! => {
    "assertion": "('vmx' in cpuinfo_contents.stdout) or ('svm' in cpuinfo_contents.stdout)",
    "changed": false,
    "evaluated_to": false,
    "msg": "CPU has to support Intel VT-x or AMD-V"
}
        to retry, use: --limit @/root/bootstrap-host/site.retry

以下の手順に従って対応してください。

3.5.4 Gitlab/Gitlab Runnerのインストールと設定

インストールが完了するまで15分近くかかりました。

# git clone https://github.com/infra-ci-book/gitlab-vagrant-ansible.git
# cd gitlab-vagrant-ansible/
# ansible-playbook site.yml

GitlabRunnerの確認と新規ユーザの追加をしていきます。

ここまででテスト環境について構築完了となります。実はここでやっとスタートラインです。

次は実際に演習に入っていきます。

今回は以上となります。

コメント