使用Vagrant和Ansible来构建MongoDB环境
在主机 OS 上安装 Ansible,并通过 Vagrant 的配置来部署 MongoDB 环境到客户机 OS 上。
需要在宿主操作系统中的东西
-
- VirtualBox
-
- Vagrant
-
- Python 2.4 以上
- Ansible
Vagrantfile的句子可以翻译为以下内容:
– Vagrant配置文件
– Vagrant文件
– Vagrant规则文件
– Vagrant定义文件
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "chef/centos-6.5"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provision :ansible do |ansible|
ansible.playbook = "playbook.yml"
ansible.inventory_path = "hosts"
ansible.limit = 'all'
end
end
-
- AnsibleではSSHでログインするのでプライベートネットワークを設定しておく。
- Vagrant1.5からはansible.limit = ‘all’という記述がないとエラーになってしまうらしい。
主持人 (zhǔ chí
[vagrant]
192.168.33.10
剧本 (jù
- hosts: vagrant
sudo: true
user: vagrant
tasks:
- name: install python-selinux
yum: pkg=libselinux-python state=latest
- name: disable selinux
selinux: state=disabled
- name: copy mongodb.repo
copy: src=mongodb.repo dest=/etc/yum.repos.d/mongodb.repo owner=root
- name: install mongodb
yum: pkg=mongodb-org
- name: start mongodb
service: name=mongod state=started
-
- selinuxが有効になっているとansibleからroot権限で作業できないので、最初の2つのタスクでselinuxを無効にしている。
- 3つめ以降のタスクはMongoDBのインストール手順に書いてある手順。
: mongodb软件源配置文件
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1
虚拟机启动
vagrant up
请参考
-
- Ansible – Provisioning – Vagrant Documentation
-
- Ansible Documentation — Ansible Documentation
-
- vagrant – Ansible コトハジメ – Qiita
-
- Vagrant 1.5からAnsibleを使うのならlimit = ‘all’が必要 – 今日のハック
- CentOS に Ansible で GitLab をインストール – Qiita