概要
今更ながらにVagrant+Ansibleの環境構築を初めてやってみました。
満足できる環境が出来上がるまでおおよそ1ヶ月。
せっかく苦労して書いたのに何もかも忘れていくのも寂しいので、
こちらに記述しておくことにしました。
本記事は頑張った結果の構成概要を記述したものです。
これ以降のシリーズではそれぞれの過程においての私の思いを記述していくつもりです。
本記事は連載シリーズです。全3回です。
[Vagrant -> Ansible -> ruby_その1(概要)]
Vagrant -> Ansible -> ruby_その2(Vagrantfile)
Vagrant -> Ansible -> ruby_その3(Ansible - playbook)
構成図
以下は自分の環境で構築した時の構成図です。
- 母艦(Ubuntu)にAnsibleコントロール用の仮想サーバ
- Ruby開発用の仮想サーバ
の構成になっております。
構成
母艦:
OS:Ubnutu 18.04.2 LTS
仮想化:KVM (libvirt 4.0.0)
Vagrant 2.0.2
子1:
ホスト名:ansible-ontrol
box OS: Ubuntu 18.04.2 LTS(generic/Ubuntu1804 1.9.12)
Ansible: 2.8
子2:
ホスト名:ansible-web
box OS: Ubuntu 18.04.2 LTS(generic/Ubuntu1804 1.9.12)
ruby: 2.6.3
本記事でやること
子1
- IPv6 の無効化
- 時刻同期サーバの設定(同期先:NICT)
子2
- IPv6 の無効化
- 時刻同期サーバの設定(同期先:NICT)
- git インストール
- Ruby用パッケージの追加インストール(gcc,make等)
- rbenv インストール
- ruby-build インストール
実行手順
$ mkdir -p /srv/vagrant && cd /srv/vagrant
$ git clone https://github.com/kurokoSin/Burgessochaeta.git .
$ vagrant up
$ vagrant ssh control
$ ansible-playbook playbook/site.yml
ディレクトリ構成
.
├── README.md
├── Vagrantfile
├── control
│ ├── ansible_conf.sh
│ ├── expect_sendkey.expect
│ └── playbook
│ ├── ansible.cfg
│ ├── config.yml
│ ├── hosts_ansible
│ ├── roles
│ │ ├── AddPacks
│ │ │ └── tasks
│ │ │ └── main.yml
│ │ ├── Japanize
│ │ │ └── tasks
│ │ │ └── main.yml
│ │ ├── common
│ │ │ └── tasks
│ │ │ └── main.yml
│ │ ├── git
│ │ │ └── tasks
│ │ │ └── main.yml
│ │ ├── ntp
│ │ │ ├── handlers
│ │ │ │ └── main.yml
│ │ │ ├── tasks
│ │ │ │ └── main.yml
│ │ │ ├── templates
│ │ │ │ └── ntp.conf.j2
│ │ │ └── vars
│ │ │ └── main.yml
│ │ ├── rbenv
│ │ │ ├── tasks
│ │ │ │ └── main.yml
│ │ │ └── templates
│ │ │ └── rbenv_setting.sh.j2
│ │ ├── ruby
│ │ │ ├── tasks
│ │ │ │ └── main.yml
│ │ │ └── templates
│ │ │ └── rbenv_setting.sh.j2
│ │ └── ssh
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── vars
│ │ └── main.yml
│ └── site.yml
└── web
└── pexpect_sndekey.py
コード
github にて公開 しております.
こちらを参照お願いします。