CoreOS Vagrant on Windows.md
Windows에서 Vagrant를 활용하여 CoreOS 설치하기
Running CoreOS on Vagrant
- OS 환경은 Windows 기반
- 해당 정보는 아래 URL 정보를 기본으로 작성되었음
Install VirtualBox
- VirtualBox 사이트를 참조하여 설치
Install Vagrant
- vagrantup.com 사이트에서 vagrant 설치 후 Reboot
- 쉽게 따라하는 vagrnat 설치 가이드
Install Git
- Git 설치
- https://git-scm.com/download/win
- Git CMD를 사용할 예정
Setup git ssh
환경 변수에 아래 내역 추가
PATH=%PATH%;C:\Program Files\Git\usr\bin
Clone Vagrant repo
Now that you have Vagrant installed you can bring up a CoreOS instance.
The following commands will clone a repository that contains the CoreOS Vagrantfile. This file tells Vagrant where it can find the latest disk image of CoreOS. Vagrant will download the image the first time you attempt to start the VM.
git CMD 창을 활용하여 실행
cd d:
mkdir vagrant
cd vagrant
git clone https://github.com/coreos/coreos-vagrant.git
cd coreos-vagrant
Starting a cluster
Cloud-config
- user-data.sample 파일을 user-data 파일로 복사 후 수정
- Edit user-data
# cd d:\vagrant\coreos-vagrant
# copy user-data.sample user-data
#cloud-config
---
coreos:
etcd2:
advertise-client-urls: http://$public_ipv4:2379
initial-advertise-peer-urls: http://$private_ipv4:2380
listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001
listen-peer-urls: http://$private_ipv4:2380,http://$private_ipv4:7001
discovery: https://discovery.etcd.io/f93048d534b4dcbf1017d3c2098f7f54
fleet:
public-ip: "$public_ipv4"
flannel:
interface: "$public_ipv4"
units:
- name: etcd2.service
command: start
- name: fleet.service
command: start
- name: flanneld.service
drop-ins:
- name: 50-network-config.conf
content: |
[Service]
ExecStartPre=/usr/bin/etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }'
command: start
- name: docker-tcp.socket
command: start
enable: true
content: |
[Unit]
Description=Docker Socket for the API
[Socket]
ListenStream=2375
Service=docker.service
BindIPv6Only=both
[Install]
WantedBy=sockets.target
- config.rb.sample 파일을 config.rb로 복사 후 수정
- $num_instances=3
- $update_channel=’stable’
# cd d:\vagrant\coreos-vagrant
# copy config.rb.sample config.rb
# Size of the CoreOS cluster created by Vagrant
$num_instances=3
# Used to fetch a new discovery token for a cluster of size $num_instances
$new_discovery_url="https://discovery.etcd.io/new?size=#{$num_instances}"
# Automatically replace the discovery token on 'vagrant up'
if File.exists?('user-data') && ARGV[0].eql?('up')
require 'open-uri'
require 'yaml'
token = open($new_discovery_url).read
data = YAML.load(IO.readlines('user-data')[1..-1].join)
if data.key? 'coreos' and data['coreos'].key? 'etcd'
data['coreos']['etcd']['discovery'] = token
end
if data.key? 'coreos' and data['coreos'].key? 'etcd2'
data['coreos']['etcd2']['discovery'] = token
end
# Fix for YAML.load() converting reboot-strategy from 'off' to `false`
if data.key? 'coreos' and data['coreos'].key? 'update' and data['coreos']['update'].key? 'reboot-strategy'
if data['coreos']['update']['reboot-strategy'] == false
data['coreos']['update']['reboot-strategy'] = 'off'
end
end
yaml = YAML.dump(data)
File.open('user-data', 'w') { |file| file.write("#cloud-config\n\n#{yaml}") }
end
#
# coreos-vagrant is configured through a series of configuration
# options (global ruby variables) which are detailed below. To modify
# these options, first copy this file to "config.rb". Then simply
# uncomment the necessary lines, leaving the $, and replace everything
# after the equals sign..
# Change basename of the VM
# The default value is "core", which results in VMs named starting with
# "core-01" through to "core-${num_instances}".
#$instance_name_prefix="core"
# Change the version of CoreOS to be installed
# To deploy a specific version, simply set $image_version accordingly.
# For example, to deploy version 709.0.0, set $image_version="709.0.0".
# The default value is "current", which points to the current version
# of the selected channel
#$image_version = "current"
# Official CoreOS channel from which updates should be downloaded
$update_channel='stable'
# Log the serial consoles of CoreOS VMs to log/
# Enable by setting value to true, disable with false
# WARNING: Serial logging is known to result in extremely high CPU usage with
# VirtualBox, so should only be used in debugging situations
#$enable_serial_logging=false
# Enable port forwarding of Docker TCP socket
# Set to the TCP port you want exposed on the *host* machine, default is 2375
# If 2375 is used, Vagrant will auto-increment (e.g. in the case of $num_instances > 1)
# You can then use the docker tool locally by setting the following env var:
# export DOCKER_HOST='tcp://127.0.0.1:2375'
#$expose_docker_tcp=2375
# Enable NFS sharing of your home directory ($HOME) to CoreOS
# It will be mounted at the same path in the VM as on the host.
# Example: /Users/foobar -> /Users/foobar
#$share_home=false
# Customize VMs
#$vm_gui = false
#$vm_memory = 1024
#$vm_cpus = 1
# Share additional folders to the CoreOS VMs
# For example,
# $shared_folders = {'/path/on/host' => '/path/on/guest', '/home/foo/app' => '/app'}
# or, to map host folders to guest folders of the same name,
# $shared_folders = Hash[*['/home/foo/app1', '/home/foo/app2'].map{|d| [d, d]}.flatten]
#$shared_folders = {}
# Enable port forwarding from guest(s) to host machine, syntax is: { 80 => 8080 }, auto correction is enabled by default.
#$forwarded_ports = {}
Start up CoreOS
Start the machine(s):
vagrant up
List the status of the running machines:
$ vagrant status
Current machine states:
core-01 running (virtualbox)
core-02 running (virtualbox)
core-03 running (virtualbox)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run vagrant status NAME
.
Connect to one of the machines:
vagrant ssh core-01 -- -A
- 접속이 안될때 git ssh.exe 파일을 참조하도록 설정
set PATH=%PATH%;C:\Program Files\Git\usr\bin
참조 Url
- Vagrant Download
- Vagrant Tutorial
- Vagrant Box list
- Git Download
댓글
댓글 쓰기