├── .gitignore ├── README.md ├── Vagrantfile ├── docker-compose.yml ├── provisioning ├── default_setting.sh ├── rancher.sh └── vmhosts.sh └── rancher-compose.yml /.gitignore: -------------------------------------------------------------------------------- 1 | rancher_db/ 2 | .vagrant/ 3 | docker-elk/ 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vagrant_rancher_cluster 2 | ## Requirement Install 3 | ### Virtual Box install 4 | * https://www.virtualbox.org/wiki/Downloads 5 | 6 | ### Vagrant install 7 | * https://www.vagrantup.com/downloads.html 8 | 9 | * _Box(Virtual Machine OS image) add - `If you need to install manually`_ 10 | ``` 11 | vagrant box add ubuntu1404 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box 12 | ``` 13 | 14 | ### Source Pull 15 | * git clone https://github.com/goody80/vagrant_rancher_cluster.git 16 | 17 | 18 | ## How to use 19 | ### Instruction 20 | ``` 21 | cd vagrant_rancher_cluster 22 | vagrant up rancher && vagrant up vmhost01 && vagrant up vmhost02 23 | ``` 24 | 25 | ### Rancher addmin page 26 | * http://localhost:8080 27 | 28 | ### Test Server connection 29 | ``` 30 | telnet 192.200.10.100 8080 31 | ``` 32 | 33 | ## Host information add 34 | ### Host Registration URL 35 | * Something else: http://192.200.10.100:8080 36 | 37 | -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | OS_NAME="ubuntu1404" 4 | OS_URL="https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box" 5 | 6 | VAGRANTFILE_API_VERSION = "2" 7 | NODE_COUNT = 10 8 | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 9 | config.vm.provision "shell", path: "./provisioning/default_setting.sh", args: "" 10 | config.vm.synced_folder "~/.ssh/", "/tmp/conf.d/" 11 | 12 | ## For Rancher VM Hosts instance 13 | NODE_COUNT.times do |i| 14 | node_id = "vmhost0#{i}" 15 | config.vm.define node_id do |node| 16 | ### Args= [service name] [master / slave] [master IP] [advertise IP] 17 | config.vm.provision "shell", path: "./provisioning/vmhosts.sh", args: "" 18 | config.vm.network "forwarded_port", guest: 80, host: "880#{i}" 19 | # config.vm.network "private_network", ip: "192.158.10.1#{i}" 20 | # config.vm.network "public_network", :dev => "br0", :mode => "bridge", :type => "bridge", :ip => "192.158.10.1#{i}", :netmask => "255.255.255.0", :auto_config => "false" 21 | config.vm.network "private_network", :dev => "eth0", :ip => "192.200.10.1#{i}" 22 | node.vm.box = OS_NAME 23 | node.vm.box_url = OS_URL 24 | node.vm.hostname = "#{node_id}" 25 | node.vm.provider :virtualbox do |vb| 26 | vb.customize ["modifyvm", :id, "--memory", "3072"] 27 | vb.customize ["modifyvm", :id, "--cpus", "2"] 28 | end 29 | end 30 | end 31 | 32 | ## For Management server for all same service farm support 33 | config.vm.define "rancher" do |rancher| 34 | config.vm.provision "shell", path: "./provisioning/rancher.sh", args: "" 35 | # config.vm.network "public_network", :dev => "br0", :mode => "bridge", :type => "bridge0", :ip => "192.158.10.100", :netmask => "255.255.255.0", :auto_config => "false" 36 | config.vm.network "private_network", :dev => "eth0", :ip => "192.200.10.100" 37 | config.vm.network "forwarded_port", guest: 8080, host: 8080 38 | rancher.vm.box = OS_NAME 39 | rancher.vm.box_url = OS_URL 40 | end 41 | 42 | config.vm.provider :virtualbox do |vb| 43 | vb.customize ["modifyvm", :id, "--memory", "2048"] 44 | vb.customize ["modifyvm", :id, "--cpus", "2"] 45 | end 46 | end 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | LB-kibana: 2 | ports: 3 | - 5601:5601 4 | tty: true 5 | image: rancher/load-balancer-service 6 | links: 7 | - org-kibana:org-kibana 8 | stdin_open: true 9 | org-kibana: 10 | labels: 11 | io.rancher.container.pull_image: always 12 | tty: true 13 | image: kibana 14 | volumes: 15 | - /data/source/:/opt/kibana/config/ 16 | stdin_open: true 17 | 18 | -------------------------------------------------------------------------------- /provisioning/default_setting.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script for Default env. of zinst 3 | #!/bin/bash 4 | LANG=en_US.UTF-8 5 | #sed -i '/^LANG=/d' /etc/sysconfig/i18n 6 | #echo 'LANG=en_US.UTF-8' >> /etc/sysconfig/i18n 7 | #sed -i 's/=enforcing/=disabled/g' /etc/selinux/config 8 | 9 | #setenforce 0 10 | 11 | 12 | apt-get 2> /tmp/check_pkgmgmt 13 | 14 | if [[ `(grep "not" /tmp/check_pkgmgmt)` != "" ]];then 15 | Pkg_mgmt="yum" 16 | else 17 | Pkg_mgmt="apt-get" 18 | apt update 19 | fi 20 | 21 | $Pkg_mgmt install curl -y 22 | $Pkg_mgmt install wget -y 23 | $Pkg_mgmt install vim -y 24 | 25 | 26 | mkdir -p /root/.ssh 27 | cp -Rfv /tmp/conf.d/* /root/.ssh 28 | -------------------------------------------------------------------------------- /provisioning/rancher.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ### Script for docker env. 3 | #sudo apt-get install libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev -y 4 | #vagrant box add ubuntu1404 http:// 5 | #vagrant plugin install vagrant-libvirt 6 | #vagrant plugin install vagrant-mutate 7 | 8 | sudo apt-get remove docker docker-engine 9 | sudo apt-get install \ 10 | linux-image-extra-$(uname -r) \ 11 | linux-image-extra-virtual 12 | 13 | sudo apt-get install \ 14 | apt-transport-https \ 15 | ca-certificates \ 16 | curl \ 17 | software-properties-common -y 18 | 19 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 20 | sudo apt-key fingerprint 0EBFCD88 21 | 22 | sudo add-apt-repository \ 23 | "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 24 | $(lsb_release -cs) \ 25 | stable" 26 | 27 | sudo apt-get update 28 | sudo apt-get install docker-ce -y 29 | apt-cache madison docker-ce 30 | 31 | # Docker-compose install 32 | curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/bin/docker-compose 33 | chmod 755 /usr/bin/docker-compose 34 | 35 | Source="/data/source" 36 | mkdir -p $Source 37 | cd $Source 38 | 39 | ## Get the dcs from docker 40 | curl -sL bit.ly/ralf_dcs -o ./dcs 41 | sudo chmod 755 ./dcs 42 | sudo mv ./dcs /usr/bin/dcs 43 | 44 | #sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server 45 | sudo mkdir /vagrant/rancher_db 46 | sudo docker run -d -v /vagrant/rancher_db/mysql/:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/server 47 | 48 | ## Docker image pull for default use 49 | sudo docker pull ubuntu:14.04 50 | sudo docker pull rancher/agent-instance:v0.8.3 51 | sudo docker pull rancher/agent:v1.0.2 52 | -------------------------------------------------------------------------------- /provisioning/vmhosts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ### Script for docker env. 3 | #sudo apt-get install libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev -y 4 | #vagrant box add ubuntu1404 http:// 5 | #vagrant plugin install vagrant-libvirt 6 | #vagrant plugin install vagrant-mutate 7 | 8 | sudo apt-get remove docker docker-engine 9 | sudo apt-get install \ 10 | linux-image-extra-$(uname -r) \ 11 | linux-image-extra-virtual 12 | 13 | sudo apt-get install \ 14 | apt-transport-https \ 15 | ca-certificates \ 16 | curl \ 17 | software-properties-common -y 18 | 19 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 20 | sudo apt-key fingerprint 0EBFCD88 21 | sudo add-apt-repository \ 22 | "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 23 | $(lsb_release -cs) \ 24 | stable" 25 | 26 | sudo apt-get update 27 | sudo apt-get install docker-ce -y 28 | apt-cache madison docker-ce 29 | 30 | # Docker-compose install 31 | curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/bin/docker-compose 32 | chmod 755 /usr/bin/docker-compose 33 | 34 | Source="/data/source/" 35 | mkdir -p $Source 36 | 37 | # elk stack compose file download 38 | cd $Source 39 | 40 | ## Get the dcs from docker 41 | curl -sL bit.ly/ralf_dcs -o ./dcs 42 | sudo chmod 755 ./dcs 43 | sudo mv ./dcs /usr/bin/dcs 44 | 45 | sudo docker pull ubuntu:14.04 46 | sudo docker pull rancher/agent-instance:v0.8.3 47 | sudo docker pull rancher/agent:v1.0.2 48 | 49 | ## Config for the ElasticSearch 50 | echo "vm.max_map_count=262144" >> /etc/sysctl.conf 51 | sysctl -w vm.max_map_count=262144 52 | -------------------------------------------------------------------------------- /rancher-compose.yml: -------------------------------------------------------------------------------- 1 | LB-kibana: 2 | scale: 1 3 | load_balancer_config: 4 | haproxy_config: {} 5 | health_check: 6 | port: 42 7 | interval: 2000 8 | unhealthy_threshold: 3 9 | healthy_threshold: 2 10 | response_timeout: 2000 11 | org-kibana: 12 | scale: 2 13 | 14 | --------------------------------------------------------------------------------