├── README.md └── mgmt.sh /README.md: -------------------------------------------------------------------------------- 1 | # docker_machine_provisioning 2 | 3 | ## How to install 4 | ``` 5 | curl -sL bit.ly/dockerM > ./mgmt.sh && chmod +x ./mgmt.sh; 6 | sudo mv ./mgmt.sh /usr/local/bin/ 7 | 8 | ``` 9 | 10 | ## How to use 11 | ``` 12 | ============================================================== 13 | What do you want ? 14 | ============================================================== 15 | [0] Install the Virtualbox & docker-machine 16 | [1] Create VM & login 17 | [2] Login to VM 18 | [3] Stop VM 19 | [4] Start VM 20 | [5] Reboot VM 21 | [RM] Remove VM 22 | ============================================================== 23 | Please insert a key as you need = 0 24 | ``` 25 | -------------------------------------------------------------------------------- /mgmt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | hname=$1 3 | 4 | Cpu="1" 5 | Mem="2048" 6 | Disk="30000" 7 | default_pw="1q2w3e" 8 | 9 | if [[ $hname = "" ]];then 10 | hname="default" 11 | fi 12 | 13 | sshkey_check(){ 14 | if [[ ! -f $HOME/.ssh/id_rsa ]];then 15 | ssh-keygen -f $HOME/.ssh/id_rsa -t rsa -N '' 16 | fi 17 | return 0 18 | } 19 | 20 | Base_cmd="/usr/local/bin/docker-machine" 21 | 22 | $Base_cmd 2> /tmp/chk_perm 23 | if [[ $(grep Permission /tmp/chk_perm) != "" ]];then 24 | echo " Please run with 'sudo' as below" 25 | echo " 'sudo mgmt.sh'" 26 | rm -f /tmp/chk_perm 27 | exit 1 28 | fi 29 | 30 | 31 | 32 | Create(){ 33 | sshkey_check 34 | # User set 35 | Host_name="$hname" 36 | Driver="virtualbox" 37 | 38 | $Base_cmd create -d $Driver --virtualbox-disk-size "$Disk" --virtualbox-cpu-count $Cpu --virtualbox-memory $Mem $Host_name 39 | $Base_cmd ssh $Host_name "tce-load -wi bash; curl -sL bit.ly/startdockertool |bash" 40 | $Base_cmd ssh $Host_name "echo -e '$default_pw\n$default_pw' | sudo passwd docker" 41 | 42 | ## Sysctl for the ElasticSearch 43 | $Base_cmd ssh $Host_name "cat /etc/sysctl.conf > /tmp/sysctl.conf && echo 'vm.max_map_count=262144' >> /tmp/sysctl.conf && sudo mv /tmp/sysctl.conf /etc/sysctl.conf" 44 | } 45 | 46 | List(){ 47 | $Base_cmd ls 48 | } 49 | 50 | 51 | stop(){ 52 | $Base_cmd stop $hname 53 | } 54 | 55 | connection(){ 56 | $Base_cmd ssh $hname 57 | } 58 | 59 | start(){ 60 | $Base_cmd start $hname 61 | } 62 | 63 | reboot(){ 64 | $Base_cmd stop $hname 65 | $Base_cmd start $hname 66 | } 67 | 68 | remove(){ 69 | echo " Are sure that remove the Virtual machine ? [ y ]" 70 | read sure 71 | if [[ $sure = "y" ]];then 72 | $Base_cmd rm $hname -y 73 | fi 74 | } 75 | 76 | application_install(){ 77 | mkdir -p ~/tmp 78 | cd ~/tmp 79 | arch=`uname -s`-`uname -m` 80 | os=`uname -s` 81 | 82 | case $os in 83 | Linux) 84 | ## VirtualBox install 85 | sudo apt-add-repository "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" 86 | #wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add - 87 | curl -sL https://www.virtualbox.org/download/oracle_vbox_2016.asc -o oracle_vbox.asc && sudo apt-key add oracle_vbox.asc 88 | sudo apt-get update 89 | sudo apt-get install virtualbox-5.2 -y 90 | ;; 91 | 92 | Darwin) 93 | ## VirtualBox Download & Install 94 | VirtualBox_installer="http://download.virtualbox.org/virtualbox/5.2.2/VirtualBox-5.2.2-119230-OSX.dmg" 95 | VirtualBox_file=$(echo "$VirtualBox_installer" | awk -F'/' '{print $NF}') 96 | curl -sL $VirtualBox_installer -o $VirtualBox_file 97 | sudo hdiutil attach $VirtualBox_file 98 | sudo installer -pkg /Volumes/VirtualBox/VirtualBox.pkg -target / 99 | hdiutil unmount /Volumes/VirtualBox/ 100 | rm -f ./$VirtualBox_file 101 | ;; 102 | esac 103 | 104 | ## Install Referece by http://www.sauru.so/blog/provision-docker-node-with-docker-machine 105 | gh="https://github.com" 106 | gh_raw="https://raw.githubusercontent.com" 107 | repo="docker/machine" 108 | version="v0.14.0" 109 | 110 | # now it is standard exec path for users. 111 | mkdir -p $HOME/.local/bin $HOME/.bash_completion.d/ 112 | 113 | curl -fsSL -o $HOME/.local/bin/docker-machine \ 114 | $gh/$repo/releases/download/$version/docker-machine-$arch 115 | chmod +x $HOME/.local/bin/docker-machine 116 | sudo cp -f $HOME/.local/bin/docker-machine /usr/local/bin/docker-machine 117 | } 118 | 119 | clear 120 | BARR="==============================================================" 121 | echo "$BARR" 122 | echo " What do you want with docker-machine ?" 123 | echo "$BARR" 124 | echo "[0] Install the Virtualbox & docker-machine" 125 | echo "[1] Create VM & login" 126 | echo "[2] Login to VM" 127 | echo "[3] Stop VM" 128 | echo "[4] Start VM" 129 | echo "[5] Reboot VM" 130 | echo "[RM] Remove VM" 131 | echo "$BARR" 132 | echo -n " Please insert a key as you need = " 133 | read choice 134 | echo "$BARR" 135 | 136 | case $choice in 137 | 0) 138 | application_install;; 139 | 1) 140 | Create;; 141 | 2) 142 | connection;; 143 | 3) 144 | stop;; 145 | 4) 146 | start;; 147 | 5) 148 | reboot;; 149 | RM|rm) 150 | remove;; 151 | esac 152 | echo "" 153 | echo "$BARR" 154 | List 155 | echo "$BARR" 156 | --------------------------------------------------------------------------------