各ソフトウェアの説明
- Vagrant
- 仮想環境構築ソフトウェア
- 設定ファイルを記述することで、仮想環境の構築・設定を自動化できる
- VirtualBox
- 仮想化ソフトウェア
- あるOS上で別のOSを動かすことができる
- Ansible
- 構成管理ツール
- サーバのプロビジョニングを効率化できる
各ソフトウェアのインストール
- Vagrant: https://www.vagrantup.com/downloads.html
- VirtualBox: https://www.virtualbox.org/wiki/Downloads
- Ansible: brew install ansible
サンプル
Ubuntuを入れて、nginxをインストールして、nginxを起動するという流れをVagrant + VirtualBox + Ansibleでやってみた。
サンプルは以下のバージョンで動作確認を行った。
- Vagrant 1.8.6
- VirtualBox 5.1.6
- Ansible 2.0.2.0
$ vagrant box add ubuntu14.04 \ https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box $ vagrant box list ubuntu14.04 (virtualbox, 0)
Vagrantfileのテンプレート作成
適当な作業ディレクトリを作成してcdする。
vagrant initすると、Vagrantfileが自動生成される。
$ mkdir ansible_sample $ cd ansible_sample $ vagrant init
Vagrantfileの編集
テンプレートを編集して以下を記述する。
config.vm.box = "ubuntu14.04" config.vm.network "private_network", ip: "192.168.33.10" config.vm.provision "ansible" do |ansible| ansible.playbook = "provisioning/playbook.yml" ansible.inventory_path = "provisioning/hosts" ansible.limit = 'sample' end
inventory fileの編集
inventory fileはAnsibleの管理対象を定義するファイル。
今回の場合はUbuntuのVMなのでそのIPアドレスを書いておく。
[sample]のところは好きな名前でよい。
$ mkdir provisioning $ emacs provisioning/hosts [sample] 192.168.33.10
playbook作成
hostsにはinventory fileで定義した名前を書く。
become: yesはsudo実行の意味。
$ emacs provisioning/playbook.yml --- - hosts: sample become: yes user: vagrant tasks: - name: install nginx apt: name=nginx update_cache=yes - name: restart nginx service: name=nginx state=restarted
実行
実行前にディレクトリ構造が以下のようになっていることを確認。
$ tree . ├── Vagrantfile └── provisioning ├── hosts └── playbook.yml
問題なければ、VMを起動&プロビジョン実施。
$ vagrant up $ vagrant provision
確認
ゲストOSにsshしてservice statusを調べる。
$ vagrant ssh vagrant@vagrant-ubuntu-trusty-64:~$ service nginx status * nginx is running
ホストOSからcurlしてみる。
$ curl 192.168.33.10Welcome to nginx!の文字が表示されればOK。
0 件のコメント:
コメントを投稿