- Mastering Ceph
- Nick Fisk
- 477字
- 2021-07-09 19:55:13
Setting up Vagrant
Perform the following steps in order to set up Vagrant:
- Follow installation instructions from Vagrant's website https://www.vagrantup.com/downloads.html to get Vagrant installed on your chosen OS:

- Create a new directory for your Vagrant project; for example, ceph-ansible.
- Change to this directory and run the following commands:
vagrant plugin install vagrant-hostmanager
The preceding command gives the following output:
vagrant box add bento/ubuntu-16.04
The preceding command gives the following output:

Now create an empty file named Vagrantfile and place the following into it:
nodes = [
{ :hostname => 'ansible', :ip => '192.168.0.40', :box => 'xenial64'
},
{ :hostname => 'mon1', :ip => '192.168.0.41', :box => 'xenial64' },
{ :hostname => 'mon2', :ip => '192.168.0.42', :box => 'xenial64' },
{ :hostname => 'mon3', :ip => '192.168.0.43', :box => 'xenial64' },
{ :hostname => 'osd1', :ip => '192.168.0.51', :box => 'xenial64',
:ram => 1024, :osd => 'yes' },
{ :hostname => 'osd2', :ip => '192.168.0.52', :box => 'xenial64',
:ram => 1024, :osd => 'yes' },
{ :hostname => 'osd3', :ip => '192.168.0.53', :box => 'xenial64',
:ram => 1024, :osd => 'yes' }
]
Vagrant.configure("2") do |config|
nodes.each do |node|
config.vm.define node[:hostname] do |nodeconfig|
nodeconfig.vm.box = "bento/ubuntu-16.04"
nodeconfig.vm.hostname = node[:hostname]
nodeconfig.vm.network :private_network, ip: node[:ip]
memory = node[:ram] ? node[:ram] : 512;
nodeconfig.vm.provider :virtualbox do |vb|
vb.customize [
"modifyvm", :id,
"--memory", memory.to_s,
]
if node[:osd] == "yes"
vb.customize [ "createhd", "--filename", "disk_osd-#
{node[:hostname]}", "--size", "10000" ]
vb.customize [ "storageattach", :id, "--storagectl", "SATA
Controller", "--port", 3, "--device", 0, "--type", "hdd",
"--medium", "disk_osd-#{node[:hostname]}.vdi" ]
end
end
end
config.hostmanager.enabled = true
config.hostmanager.manage_guest = true
end
end
Run vagrant up to bring up the VMs defined in Vagrantfile:

Now let's connect to the ansible VM using ssh:
vagrant ssh ansible
The preceding command gives the following output:

PuTTY would be a good suggestion for an SSH client. On Linux, the command will connect you straight onto the VM.
The username and password are both vagrant. After logging in, you should find yourself sitting at the Bash shell of the ansible VM:

Simply type exit to return to your host machine.
Congratulations! You have just deployed three servers for using as Ceph monitors, three servers for using as Ceph OSDs, and an Ansible server. Vagrantfile could have also contained extra steps to execute commands on the servers to configure them, but for now, let's shut down the servers using the following command; we can bring them back up for when needed by the examples later in this chapter:
vagrant destroy --force
- 返璞歸真:UNIX技術內幕
- 大數據時代的數據挖掘
- 機器學習與大數據技術
- Embedded Programming with Modern C++ Cookbook
- Hybrid Cloud for Architects
- LAMP網站開發黃金組合Linux+Apache+MySQL+PHP
- 網中之我:何明升網絡社會論稿
- Chef:Powerful Infrastructure Automation
- 精通數據科學:從線性回歸到深度學習
- C++程序設計基礎(上)
- Mastering Ceph
- Learn QGIS
- Learning Cassandra for Administrators
- Raspberry Pi Projects for Kids
- 玩轉PowerPoint