インフラCIをやりたい-part1
やってみたい好奇心が優先された
何Partで終わるやら…
準備するもの
流石にネットの散乱した情報じゃ絶対に迷子になるだろうことが容易に想像できたので友人から↓の書籍を借りる
インフラCI実践ガイド Ansible/GitLabを使ったインフラ改善サイクルの実現
技術要素
要素 | ガイド本 | その他一例 |
---|---|---|
ダイナミック インフラストラクチャ |
Vagrant | OpenStack GCP Azure |
構成管理ツール | Ansible | Chef Terraform |
バージョン管理 | GitLab | GitHub |
CIツール | GitLab CI GitLab Runner |
Circle CI Jenkins |
サーバ構成テストツール | Ansible | Serverspec InSpec |
issue チケット管理 |
GitLab | RedMine |
レビューシステム | GitLab | GitHub |
環境構築
OSのインストール
書籍該当バージョンのCentOS7でインスタンスを立てる
※マイナーは気にしなくていいとのこと
項目 | 選択 |
---|---|
OS | CentOS 7 |
インスタンスタイプ | t2.large |
ストレージ:ルート | 55GB |
セキュリティグループ インバウンド |
SSH マイIP:22 |
タグ:Name | CI-test |
インスタンスのステータスチェックが2/2で完了したらssh接続
Centosの場合のログイン時ユーザに気付くのに若干時間取られた
AWSコンソールで対象インスタンスの[ご利用方法]タブにssh方法が記載されている
ssh -i <pem鍵> centos@パブリックDNS
sshdの起動と有効化
systemctl start sshd systemctl enable sshd
GitとAnsibleのインストール
curlコマンドを使用して書籍指定のファイルをDL
その後インストールシェルの実行に再起動
curl -o <ファイル名> -L https://なんちゃらかんちゃら sh ./setup.sh reboot
curl
-o:指定したURLをそのままファイルとしてダウンロード
-L:リダイレクトも追う
バージョン確認
git --version ansible --version
VirtualBox/Vagrantインストール
ガイド本のgitリポジトリを利用してAnsibleのプレイブックを実行
コケてるんで調査
調べた感じだと、実行したPlayBookは同じディレクトリにある他のPlayBookをImportする内容の模様
そのImport-PlayBookの中のDiscCheck.yml的なところでコケてる現状
中身は↓
--- - name: Check available disk space gather_facts: True hosts: "vagrant" become: True roles: - diskspace
name→任意の文字列
gather_facts: True→ホストのハード情報を収集する
hosts: "vagrant"→hosts ファイルで指定したグループ名(存在確認済み)
become: True→PlayBookをroot権限で実行
roles:(diskspace)モジュールの読み込み
rolesはrolesディレクトリ配下にある切り分けられたymlを読み込む役割と一旦認識
調べたところ>roles>diskspace配下に2つのymlファイルがあり、これらを読み込んでいたっぽい
ひとつはハード情報を収集して50GB以上あるかをCheckしているっぽい
もうひとつのymlファイルの中にコケていたTaskを発見
- name: Check the virt type assert: that: - ('vmx' in cpuinfo_contents.stdout) or ('svm' in cpuinfo_contents.stdout) msg: "CPU has to support Intel VT-x or AMD-V" when: - check_cpuinfo
CPU has to support Intel VT-x or AMD-V
に着目してググる
要はEC2(仮想サーバ)の中に仮想環境を構築という所謂仮想化の入れ子状態になるから仮想化支援機能を有効化しろというCheckTaskらしい そしてAWSでだとちょっと厳しそう?
AWSってまっさらなベアメタルで使えないのだろうか?
→
Amazon EC2 I3 インスタンス – ハイ I/O コンピューティングインスタンス
高過ぎて笑える。個人ユースでは無理
端末のVirtualBoxにCentOSを入れ直すか悩み中