以前、VagrantのプロビジョニングでMySQLサーバを構築するという記事を書きましたが、 今回は、MongoDBをプロビジョニングする方法についてメモを残しておきます。
ホストはUbuntu16.04で、Vagrantは1.8.5。
ゲストもUbuntu16.04で、MongoDBは3.4.2。
あまり説明を詳細に書くようなこともないので、Gistを貼っておく。
| #!/usr/bin/env bash | |
| sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 | |
| echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list | |
| sudo apt-get update | |
| sudo apt-get install -y mongodb-org | |
| sudo service mongod start | |
| sudo systemctl enable mongod.service |
| # -*- mode: ruby -*- | |
| # vi: set ft=ruby : | |
| # All Vagrant configuration is done below. The "2" in Vagrant.configure | |
| # configures the configuration version (we support older styles for | |
| # backwards compatibility). Please don't change it unless you know what | |
| # you're doing. | |
| Vagrant.configure("2") do |config| | |
| # The most common configuration options are documented and commented below. | |
| # For a complete reference, please see the online documentation at | |
| # https://docs.vagrantup.com. | |
| # Every Vagrant development environment requires a box. You can search for | |
| # boxes at https://atlas.hashicorp.com/search. | |
| config.vm.box = "ubuntu/xenial64" | |
| # Disable automatic box update checking. If you disable this, then | |
| # boxes will only be checked for updates when the user runs | |
| # `vagrant box outdated`. This is not recommended. | |
| # config.vm.box_check_update = false | |
| # Create a forwarded port mapping which allows access to a specific port | |
| # within the machine from a port on the host machine. In the example below, | |
| # accessing "localhost:8080" will access port 80 on the guest machine. | |
| # config.vm.network "forwarded_port", guest: 80, host: 8080 | |
| # Create a private network, which allows host-only access to the machine | |
| # using a specific IP. | |
| config.vm.network "private_network", ip: "192.168.33.10" | |
| # Create a public network, which generally matched to bridged network. | |
| # Bridged networks make the machine appear as another physical device on | |
| # your network. | |
| # config.vm.network "public_network" | |
| # Share an additional folder to the guest VM. The first argument is | |
| # the path on the host to the actual folder. The second argument is | |
| # the path on the guest to mount the folder. And the optional third | |
| # argument is a set of non-required options. | |
| # config.vm.synced_folder "../data", "/vagrant_data" | |
| # Provider-specific configuration so you can fine-tune various | |
| # backing providers for Vagrant. These expose provider-specific options. | |
| # Example for VirtualBox: | |
| # | |
| # config.vm.provider "virtualbox" do |vb| | |
| # # Display the VirtualBox GUI when booting the machine | |
| # vb.gui = true | |
| # | |
| # # Customize the amount of memory on the VM: | |
| # vb.memory = "1024" | |
| # end | |
| # | |
| # View the documentation for the provider you are using for more | |
| # information on available options. | |
| config.vm.provider 'virtualbox' do |vb| | |
| vb.memory = 1024 | |
| end | |
| # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies | |
| # such as FTP and Heroku are also available. See the documentation at | |
| # https://docs.vagrantup.com/v2/push/atlas.html for more information. | |
| # config.push.define "atlas" do |push| | |
| # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" | |
| # end | |
| # Enable provisioning with a shell script. Additional provisioners such as | |
| # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the | |
| # documentation for more information about their specific syntax and use. | |
| # config.vm.provision "shell", inline: <<-SHELL | |
| # apt-get update | |
| # apt-get install -y apache2 | |
| # SHELL | |
| config.vm.provision :shell, path: 'mongodb.sh' | |
| end |
↑のスクリプトでは、mongo.confの編集を行っていないため、MongoDBは127.0.0.1にバインドされ、
localhostからの接続のみ受け付けるようになる。
どこからでもアクセスできるようにするには、mongo.confのbind_ipを変更する必要がある。
これでVagrantにMongoDBサーバを構築できました。