diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..b153bea --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,23 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : +Vagrant.configure("2") do |config| + config.ssh.insert_key = false + (1..3).each do |i| + config.vm.define "node-#{i}" do |lb| + lb.vm.box = "centos/7" + disk_var = "./disk#{i}.dvi" + node_name = "node#{i}" + lb.vm.hostname = node_name + lb.vm.network "private_network", ip: "192.168.56.1#{i}" + lb.vm.provider "virtualbox" do |vb| + vb.customize ["modifyvm", :id, "--memory", "512", "--cpus", "1", "--name", node_name] + unless File.exist?(disk_var) + vb.customize ['createhd', '--filename', disk_var, '--variant', 'Fixed', '--size', 5 * 1024] + end + vb.customize ['storageattach', :id, '--storagectl', 'IDE', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', disk_var] + end + lb.vm.provision "shell", path: "scripts/glusterfs.sh" + lb.vm.provision "shell", path: "scripts/configuration.sh" + end + end +end \ No newline at end of file diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..0bf4534 --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,6 @@ +[defaults] +inventory=./ansible_hosts +remote_user=vagrant +private_key_file=$HOME/.vagrant.d/insecure_private_key +host_key_checking=false +retry_files_enabled=false \ No newline at end of file diff --git a/ansible_hosts b/ansible_hosts new file mode 100644 index 0000000..44f01aa --- /dev/null +++ b/ansible_hosts @@ -0,0 +1,4 @@ +[servers] +node1 ansible_ssh_host=192.168.56.11 +node2 ansible_ssh_host=192.168.56.12 +node3 ansible_ssh_host=192.168.56.13 \ No newline at end of file diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..b592523 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,26 @@ +--- +- hosts: all + become: true + tasks: + - name: Peer with every node + gluster_peer: + state: present + nodes: + - node2 + - node3 + - name: Create gluster volume + gluster_volume: + state: present + name: gv0 + bricks: /gluster/data/gv0 + replicas: 3 + cluster: + - node1 + - node2 + - node3 + - name: Start gluster + gluster_volume: + state: started + name: gv0 + - name: Mount + shell: mount.glusterfs localhost:/gv0 /mnt \ No newline at end of file diff --git a/scripts/configuration.sh b/scripts/configuration.sh new file mode 100644 index 0000000..1fe318e --- /dev/null +++ b/scripts/configuration.sh @@ -0,0 +1,3 @@ +echo "192.168.56.11 node1" >> /etc/hosts +echo "192.168.56.12 node2" >> /etc/hosts +echo "192.168.56.13 node3" >> /etc/hosts \ No newline at end of file diff --git a/scripts/glusterfs.sh b/scripts/glusterfs.sh new file mode 100644 index 0000000..31981f5 --- /dev/null +++ b/scripts/glusterfs.sh @@ -0,0 +1,10 @@ +yum install -y centos-release-gluster +yum install -y glusterfs-server +yum install -y xfsprogs +service glusterd start +sfdisk /dev/sdb << EOF +; +EOF +mkfs.xfs /dev/sdb1 +mkdir -p /gluster/data +mount /dev/sdb1 /gluster/data/ \ No newline at end of file