forked from cloudfoundry/docs-bosh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathguide-ipv6-pure-on-vsphere.html.md.erb
123 lines (89 loc) · 4.79 KB
/
guide-ipv6-pure-on-vsphere.html.md.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
---
title: Pure IPv6 on vSphere
---
<p class="note">This document is work in progress.</p>
---
## <a id="pure"></a> Pure IPv6 Configuration
In this example, we use the BOSH CLI and `bosh-deployment` to deploy a Director with an IPv6 address and then deploy VMs with IPv6 addresses.
### Prerequisites
- vCenter Server is accessible via IPv6 address
- ESXi servers (that will be used for stemcell uploading) are accessible via IPv6 addresses
- The workstation where `bosh create-env` command is executed must be able to reach the Director's assigned IPv6 address (the workstation must also have an IPv6 address).
- All IPv6 address *must* be specified in expanded format, leading zeroes, no double-colons. This applies to all variables, deployment manifests, cloud config, etc.
- The `internal_gw` (gateway) must be in the same IPv6 subnet as the Director. If the gateway is a [link-local](https://en.wikipedia.org/wiki/IPv6_address#Local_addresses) (it starts with `fe80:`) you can strip the [modified EUI-64](https://en.wikipedia.org/wiki/IPv6_address#Modified_EUI-64) so that gateway IP is within your chosen subnet. For example, if the default IPv6 gateway is `fe80::20d:b9ff:fe48:9249`, the gateway IP in the BOSH manifest would be `fddf:9b0b:7aac:ac45:20d:b9ff:fe48:9249`.
- Use Simple DNS's [generator](http://simpledns.com/private-ipv6) to obtain a _private_ IPv6 address range.
### Steps
1. To deploy the Director use `bosh create-env` command with additional IPv6-specific ops files. See [Creating environment on vSphere](init-vsphere.html) for more details on initializing Director on vSphere.
<pre class="terminal">
# Create directory to keep state
$ mkdir ipv6 && cd ipv6
# Clone Director templates
$ git clone https://github.com/cloudfoundry/bosh-deployment
$ bosh create-env bosh-deployment/bosh.yml \
--state=state.json \
--vars-store=creds.yml \
-o bosh-deployment/vsphere/cpi.yml \
-o bosh-deployment/vsphere/resource-pool.yml \
-o bosh-deployment/jumpbox-user.yml \
-o bosh-deployment/uaa.yml \
-o bosh-deployment/credhub.yml \
-o bosh-deployment/misc/ipv6/bosh.yml \
-o bosh-deployment/misc/ipv6/uaa.yml \
-o bosh-deployment/misc/ipv6/credhub.yml \
-v director_name=ipv6 \
-v internal_cidr=fddf:9b0b:7aac:ac45:0000:0000:0000:0000/64 \
-v internal_gw=fddf:9b0b:7aac:ac45:0000:0000:0000:0001 \
-v internal_ip=fddf:9b0b:7aac:ac45:0000:0000:0000:0108 \
-v network_name="VM Network" \
-v vcenter_dc=dc \
-v vcenter_cluster=cl \
-v vcenter_rp=IPv6 \
-v vcenter_ds=SSD-0 \
-v vcenter_ip=\"[fd36:c71a:6f0c:2d1e:0000:0000:0000:0105]\" \
-v vcenter_user=administrator@vsphere.local \
-v vcenter_password=TheClothesMakethTheMan \
-v vcenter_templates=bosh-ipv6-templates \
-v vcenter_vms=bosh-ipv6-vms \
-v vcenter_disks=bosh-ipv6-disks
</pre>
1. Connect to the Director:
<pre class="terminal">
$ bosh alias-env ipv6 -e https://[fddf:9b0b:7aac:ac45:0000:0000:0000:0108]:25555 --ca-cert <(bosh int ./creds.yml --path /director_ssl/ca)
$ export BOSH_CLIENT=admin
$ export BOSH_CLIENT_SECRET=`bosh int ./creds.yml --path /admin_password`
</pre>
1. Confirm that it works:
<pre class="terminal">
$ bosh -e ipv6 env
Using environment 'fddf:9b0b:7aac:ac45:0000:0000:0000:0108' as '?'
Name: ...
User: admin
Succeeded
</pre>
### <a id="pure-deploy"></a> Deploy example Zookeeper deployment
Follow steps below or the [deploy workflow](basic-workflow.html) that goes through the same steps but with more explanation.
1. Update configs
<pre class="terminal">
$ bosh -e ipv6 update-cloud-config ~/workspace/bosh-deployment/vsphere/cloud-config.yml \
-v vcenter_cluster=cl \
-v internal_cidr=fddf:9b0b:7aac:ac45:0000:0000:0000:0000/64 \
-v internal_gw=fddf:9b0b:7aac:ac45:0000:0000:0000:0001 \
-v network_name="VM Network"
$ bosh -e ipv6 update-runtime-config ~/workspace/bosh-deployment/runtime-configs/dns.yml
</pre>
1. Upload stemcell
<pre class="terminal">
$ bosh -e ipv6 upload-stemcell https://bosh.io/d/stemcells/bosh-vsphere-esxi-ubuntu-trusty-go_agent?v=3468.17 \
--sha1 1691f18b9141ac59aec893a1e8437a7d68a88038
</pre>
Note that IPv6 is currently only available for Ubuntu Trusty stemcells.
1. Deploy example deployment and see IPv6 addresses
<pre class="terminal">
$ bosh -e ipv6 -d zookeeper deploy <(wget -O- https://raw.githubusercontent.com/cppforlife/zookeeper-release/master/manifests/zookeeper.yml)
# todo use_dns_addresses update
$ bosh -e ipv6 -d zookeeper instances
</pre>
1. Run Zookeeper smoke tests
<pre class="terminal">
$ bosh -e ipv6 -d zookeeper run-errand smoke-tests
</pre>