mirror of https://github.com/ceph/ceph-ansible.git
commit
88d8edcb81
28
README.md
28
README.md
|
@ -92,6 +92,34 @@ information about how to generate appropriate values for these variables.
|
||||||
By default, ceph-common installs from Ceph repository. However, you
|
By default, ceph-common installs from Ceph repository. However, you
|
||||||
can set `ceph_origin` to "distro" to install Ceph from your default repository.
|
can set `ceph_origin` to "distro" to install Ceph from your default repository.
|
||||||
|
|
||||||
|
## Setup for Vagrant using libvirt provider
|
||||||
|
|
||||||
|
* Create vagrant_variables.yml
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cp vagrant_variables.yml.sample vagrant_variables.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
* Edit `vagrant_variables.yml` and setup the following variables:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
memory: 1024
|
||||||
|
disks: "[ '/dev/vdb', '/dev/vdc' ]"
|
||||||
|
vagrant_box: centos/7
|
||||||
|
```
|
||||||
|
|
||||||
|
* Create site.yml
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cp site.yml.sample site.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
* Create VMs
|
||||||
|
|
||||||
|
```
|
||||||
|
$ sudo vagrant up --no-provision --provider=libvirt
|
||||||
|
$ sudo vagrant provision
|
||||||
|
```
|
||||||
|
|
||||||
### For Debian based systems
|
### For Debian based systems
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ ansible_provision = proc do |ansible|
|
||||||
monitor_interface: ETH,
|
monitor_interface: ETH,
|
||||||
cluster_network: "#{SUBNET}.0/24",
|
cluster_network: "#{SUBNET}.0/24",
|
||||||
public_network: "#{SUBNET}.0/24",
|
public_network: "#{SUBNET}.0/24",
|
||||||
devices: "[ '/dev/sdb', '/dev/sdc' ]",
|
devices: settings['disks'],
|
||||||
}
|
}
|
||||||
ansible.limit = 'all'
|
ansible.limit = 'all'
|
||||||
end
|
end
|
||||||
|
@ -58,16 +58,30 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||||
config.vm.box = BOX
|
config.vm.box = BOX
|
||||||
config.ssh.insert_key = false # workaround for https://github.com/mitchellh/vagrant/issues/5048
|
config.ssh.insert_key = false # workaround for https://github.com/mitchellh/vagrant/issues/5048
|
||||||
|
|
||||||
|
# Faster bootup. Disable if you need this for libvirt
|
||||||
|
config.vm.provider :libvirt do |v,override|
|
||||||
|
override.vm.synced_folder '.', '/home/vagrant/sync', disabled: true
|
||||||
|
end
|
||||||
|
|
||||||
(0..CLIENTS - 1).each do |i|
|
(0..CLIENTS - 1).each do |i|
|
||||||
config.vm.define "client#{i}" do |client|
|
config.vm.define "client#{i}" do |client|
|
||||||
client.vm.hostname = "ceph-client#{i}"
|
client.vm.hostname = "ceph-client#{i}"
|
||||||
client.vm.network :private_network, ip: "#{SUBNET}.4#{i}"
|
client.vm.network :private_network, ip: "#{SUBNET}.4#{i}"
|
||||||
|
|
||||||
|
# Virtualbox
|
||||||
client.vm.provider :virtualbox do |vb|
|
client.vm.provider :virtualbox do |vb|
|
||||||
vb.customize ['modifyvm', :id, '--memory', "#{MEMORY}"]
|
vb.customize ['modifyvm', :id, '--memory', "#{MEMORY}"]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# VMware
|
||||||
client.vm.provider :vmware_fusion do |v|
|
client.vm.provider :vmware_fusion do |v|
|
||||||
v.vmx['memsize'] = "#{MEMORY}"
|
v.vmx['memsize'] = "#{MEMORY}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Libvirt
|
||||||
|
client.vm.provider :libvirt do |lv|
|
||||||
|
lv.memory = MEMORY
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -75,25 +89,43 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||||
config.vm.define "rgw#{i}" do |rgw|
|
config.vm.define "rgw#{i}" do |rgw|
|
||||||
rgw.vm.hostname = "ceph-rgw#{i}"
|
rgw.vm.hostname = "ceph-rgw#{i}"
|
||||||
rgw.vm.network :private_network, ip: "#{SUBNET}.4#{i}"
|
rgw.vm.network :private_network, ip: "#{SUBNET}.4#{i}"
|
||||||
|
|
||||||
|
# Virtualbox
|
||||||
rgw.vm.provider :virtualbox do |vb|
|
rgw.vm.provider :virtualbox do |vb|
|
||||||
vb.customize ['modifyvm', :id, '--memory', "#{MEMORY}"]
|
vb.customize ['modifyvm', :id, '--memory', "#{MEMORY}"]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# VMware
|
||||||
rgw.vm.provider :vmware_fusion do |v|
|
rgw.vm.provider :vmware_fusion do |v|
|
||||||
v.vmx['memsize'] = "#{MEMORY}"
|
v.vmx['memsize'] = "#{MEMORY}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Libvirt
|
||||||
|
rgw.vm.provider :libvirt do |lv|
|
||||||
|
lv.memory = MEMORY
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
(0..NMDSS - 1).each do |i|
|
(0..NMDSS - 1).each do |i|
|
||||||
config.vm.define "mds#{i}" do |rgw|
|
config.vm.define "mds#{i}" do |mds|
|
||||||
rgw.vm.hostname = "ceph-mds#{i}"
|
mds.vm.hostname = "ceph-mds#{i}"
|
||||||
rgw.vm.network :private_network, ip: "#{SUBNET}.7#{i}"
|
mds.vm.network :private_network, ip: "#{SUBNET}.7#{i}"
|
||||||
rgw.vm.provider :virtualbox do |vb|
|
|
||||||
|
# Virtualbox
|
||||||
|
mds.vm.provider :virtualbox do |vb|
|
||||||
vb.customize ['modifyvm', :id, '--memory', "#{MEMORY}"]
|
vb.customize ['modifyvm', :id, '--memory', "#{MEMORY}"]
|
||||||
end
|
end
|
||||||
rgw.vm.provider :vmware_fusion do |v|
|
|
||||||
|
# VMware
|
||||||
|
mds.vm.provider :vmware_fusion do |v|
|
||||||
v.vmx['memsize'] = "#{MEMORY}"
|
v.vmx['memsize'] = "#{MEMORY}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Libvirt
|
||||||
|
mds.vm.provider :libvirt do |lv|
|
||||||
|
lv.memory = MEMORY
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -101,12 +133,21 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||||
config.vm.define "mon#{i}" do |mon|
|
config.vm.define "mon#{i}" do |mon|
|
||||||
mon.vm.hostname = "ceph-mon#{i}"
|
mon.vm.hostname = "ceph-mon#{i}"
|
||||||
mon.vm.network :private_network, ip: "#{SUBNET}.1#{i}"
|
mon.vm.network :private_network, ip: "#{SUBNET}.1#{i}"
|
||||||
|
|
||||||
|
# Virtualbox
|
||||||
mon.vm.provider :virtualbox do |vb|
|
mon.vm.provider :virtualbox do |vb|
|
||||||
vb.customize ['modifyvm', :id, '--memory', "#{MEMORY}"]
|
vb.customize ['modifyvm', :id, '--memory', "#{MEMORY}"]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# VMware
|
||||||
mon.vm.provider :vmware_fusion do |v|
|
mon.vm.provider :vmware_fusion do |v|
|
||||||
v.vmx['memsize'] = "#{MEMORY}"
|
v.vmx['memsize'] = "#{MEMORY}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Libvirt
|
||||||
|
mon.vm.provider :libvirt do |lv|
|
||||||
|
lv.memory = MEMORY
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -115,6 +156,8 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||||
osd.vm.hostname = "ceph-osd#{i}"
|
osd.vm.hostname = "ceph-osd#{i}"
|
||||||
osd.vm.network :private_network, ip: "#{SUBNET}.10#{i}"
|
osd.vm.network :private_network, ip: "#{SUBNET}.10#{i}"
|
||||||
osd.vm.network :private_network, ip: "#{SUBNET}.20#{i}"
|
osd.vm.network :private_network, ip: "#{SUBNET}.20#{i}"
|
||||||
|
|
||||||
|
# Virtualbox
|
||||||
osd.vm.provider :virtualbox do |vb|
|
osd.vm.provider :virtualbox do |vb|
|
||||||
(0..1).each do |d|
|
(0..1).each do |d|
|
||||||
vb.customize ['createhd',
|
vb.customize ['createhd',
|
||||||
|
@ -132,6 +175,8 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||||
end
|
end
|
||||||
vb.customize ['modifyvm', :id, '--memory', "#{MEMORY}"]
|
vb.customize ['modifyvm', :id, '--memory', "#{MEMORY}"]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# VMware
|
||||||
osd.vm.provider :vmware_fusion do |v|
|
osd.vm.provider :vmware_fusion do |v|
|
||||||
(0..1).each do |d|
|
(0..1).each do |d|
|
||||||
v.vmx["scsi0:#{d + 1}.present"] = 'TRUE'
|
v.vmx["scsi0:#{d + 1}.present"] = 'TRUE'
|
||||||
|
@ -141,6 +186,15 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||||
v.vmx['memsize'] = "#{MEMORY}"
|
v.vmx['memsize'] = "#{MEMORY}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Libvirt
|
||||||
|
driverletters = ('b'..'z').to_a
|
||||||
|
osd.vm.provider :libvirt do |lv|
|
||||||
|
(0..1).each do |d|
|
||||||
|
lv.storage :file, :device => "vd#{driverletters[d]}", :path => "disk-#{i}-#{d}.disk", :size => '11G'
|
||||||
|
end
|
||||||
|
lv.memory = MEMORY
|
||||||
|
end
|
||||||
|
|
||||||
# Run the provisioner after the last machine comes up
|
# Run the provisioner after the last machine comes up
|
||||||
osd.vm.provision 'ansible', &ansible_provision if i == (NOSDS - 1)
|
osd.vm.provision 'ansible', &ansible_provision if i == (NOSDS - 1)
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,13 +15,18 @@ subnet: 192.168.42
|
||||||
memory: 256
|
memory: 256
|
||||||
|
|
||||||
# Ethernet interface name
|
# Ethernet interface name
|
||||||
# use eth1 for ubuntu, enp0s8 for CentOS
|
# use eth1 for libvirt and ubuntu, enp0s8 for CentOS
|
||||||
eth: 'eth1'
|
eth: 'eth1'
|
||||||
|
|
||||||
|
# Disks
|
||||||
|
# For libvirt use disks: "[ '/dev/vdb', '/dev/vdc' ]"
|
||||||
|
disks: "[ '/dev/sdb', '/dev/sdc' ]"
|
||||||
|
|
||||||
# VAGRANT BOX
|
# VAGRANT BOX
|
||||||
# Fedora: https://download.fedoraproject.org/pub/fedora/linux/releases/22/Cloud/x86_64/Images/Fedora-Cloud-Base-Vagrant-22-20150521.x86_64.vagrant-virtualbox.box
|
# Fedora: https://download.fedoraproject.org/pub/fedora/linux/releases/22/Cloud/x86_64/Images/Fedora-Cloud-Base-Vagrant-22-20150521.x86_64.vagrant-virtualbox.box
|
||||||
# Ubuntu: ubuntu/trusty64
|
# Ubuntu: ubuntu/trusty64
|
||||||
# CentOS: bento/centos-7.1
|
# CentOS: bento/centos-7.1
|
||||||
|
# libvirt CentOS: centos/7
|
||||||
# Debian: deb/jessie-amd64 - be careful the storage controller is named 'SATA Controller'
|
# Debian: deb/jessie-amd64 - be careful the storage controller is named 'SATA Controller'
|
||||||
# For more boxes have a look at:
|
# For more boxes have a look at:
|
||||||
# - https://atlas.hashicorp.com/boxes/search?utf8=✓&sort=&provider=virtualbox&q=
|
# - https://atlas.hashicorp.com/boxes/search?utf8=✓&sort=&provider=virtualbox&q=
|
||||||
|
|
Loading…
Reference in New Issue