├── docs
├── CDSExtDeployment.png
├── CDSIntDeployment.png
├── walkthru-vcenter-install.md
├── env.md
├── developer.md
├── run.md
└── setup.md
├── .gitreview
├── default.xml
├── other-internal.xml
├── .travis.yml
├── vmworld.xml
├── vmint.xml
├── repo-to-markdown.py
├── other.xml
├── README.md
└── vmwareorg.xml
/docs/CDSExtDeployment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmware-archive/chaperone/HEAD/docs/CDSExtDeployment.png
--------------------------------------------------------------------------------
/docs/CDSIntDeployment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vmware-archive/chaperone/HEAD/docs/CDSIntDeployment.png
--------------------------------------------------------------------------------
/.gitreview:
--------------------------------------------------------------------------------
1 | [gerrit]
2 | host=gerrit.eng.vmware.com
3 | port=29418
4 | project=supervio
5 | defaultbranch=master
6 |
--------------------------------------------------------------------------------
/docs/walkthru-vcenter-install.md:
--------------------------------------------------------------------------------
1 | # Walkthru: installing vcenter
2 |
3 | ## Requirements
4 |
5 | * An ESXI host up and running
6 |
7 |
--------------------------------------------------------------------------------
/default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/other-internal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | ---
2 | language: python
3 | python: "2.7"
4 |
5 | sudo: required
6 |
7 | before_install:
8 | - pwd
9 | - "sudo apt-get -y install curl lsb_release || true"
10 | - curl https://storage.googleapis.com/git-repo-downloads/repo > /tmp/repo
11 | - chmod a+x /tmp/repo
12 | - sudo mv /tmp/repo /bin/repo
13 | - git config --global user.email "you@example.com"
14 | - git config --global user.name "Your Name"
15 | - "[ -d /opt/chaperone ] || sudo mkdir -p /opt/chaperone"
16 | - export SLUG=$TRAVIS_REPO_SLUG
17 | - export BRANCH=$TRAVIS_BRANCH
18 | - 'if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then export SLUG=$TRAVIS_PULL_REQUEST_SLUG; export BRANCH=$TRAVIS_PULL_REQUEST_BRANCH; fi'
19 | - env
20 |
21 | install:
22 | - pip install ansible ansible-lint
23 |
24 | script:
25 | - cd /tmp
26 | - echo "y" | repo init -u https://github.com/$SLUG -b $BRANCH -g chaperone
27 | - repo sync
28 | - cd ansible/playbooks/ansible
29 | - ansible-playbook -i inventory ansible.yml
30 |
--------------------------------------------------------------------------------
/vmworld.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 |
9 |
12 |
13 |
14 |
16 |
17 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/vmint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/repo-to-markdown.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | from __future__ import print_function
4 |
5 | import xmltodict
6 | import sys
7 | import urllib2
8 |
9 |
10 |
11 | shorturls = []
12 | markdown_longurls = []
13 |
14 | for arg in sys.argv[1:]:
15 | with open(arg) as fd:
16 | doc = xmltodict.parse(fd.read())
17 |
18 | orgname = doc['manifest']['remote']['@name']
19 | orgurl = doc['manifest']['remote']['@fetch']
20 |
21 | if orgname == 'vmwareorg':
22 | orgname = 'vmware'
23 |
24 | #print(vmwareorg)
25 | for project in doc['manifest']['project']:
26 | if '@name' in project:
27 | if '/' in project['@name']:
28 | shorturls.append('repo:%s' % (project['@name']))
29 | else:
30 | shorturls.append('repo:%s/%s' % (orgname, project['@name']))
31 |
32 |
33 | # link repos, and add travis gif?
34 | # markdown_longurls.append(
35 | # ' - [%s](%s) [](https://travis-ci.org/%s/%s) ' % (
36 | # project['@name'], orgurl + '/' + project['@name'], orgname, project['@name'], orgname,
37 | # project['@name']))
38 |
39 | markdown_longurls.append(' - [%s](%s)' % (project['@name'], orgurl + '/' + project['@name']))
40 |
41 | print(' - [link to PRs](http://github.com/search?q=' + urllib2.quote('is:pr ' + " ".join(shorturls) ) +')')
42 | print("---------------")
43 | print(' - [link to Issues](http://github.com/search?q=' + urllib2.quote('is:issue ' + " ".join(shorturls) ) +')')
44 | print("---------------")
45 | print("\n".join(markdown_longurls))
46 |
47 |
--------------------------------------------------------------------------------
/docs/env.md:
--------------------------------------------------------------------------------
1 | Chaperone Deployment Environment
2 | =====================
3 | Development and deployment require two VMs running [Ubuntu Linux 64-bit](http://www.ubuntu.com/download/server):
4 |
5 | - **Development Environment (DE)** is the environment into which you download, modify and commit code..
6 | - **Chaperone Deployment Server (CDS)** is the target into which the development environment deploys the code.
7 |
8 | The Chaperone Deployment server runs the applications used to configure a
9 | SDDC Server environment, so must have access to the environment against which
10 | it will act. This file describes deployment options for the Chaperone
11 | Deployment Server (CDS)
12 |
13 | ## External Deployment
14 | Where firewalls or other security measures would not block access to vCenter
15 | Server and the general SDDC infrastructure by Chaperone, the Deployment Server
16 | can exist anywhere on any network that can reach the SDDC infrastructure.
17 | Examples would be deployment on developer desktops using VMware Fusion or
18 | Workstation. This option would look like the following:
19 |
20 | 
21 |
22 | This configuration requires that the vCenter server management port is exposed
23 | on an external ip that is accessible by the CDS server.
24 |
25 | ## Internal Deployment
26 | In some cases, such as in cloud 'pods' or on production premises, the
27 | Chaperone Deployment Server needs to exist within the context of the
28 | infrastructure management server (e.g., vCenter server). In such cases, the
29 | CDS can be a VM deployed into an on-premises management instance. That
30 | scenario would look similar to the following
31 |
32 | 
33 |
34 | In this case, the CDS ssh port (22) would need to be exposed externally if new
35 | builds of the Chaperone GUI(s) were required.
36 |
--------------------------------------------------------------------------------
/other.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
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 |
--------------------------------------------------------------------------------
/docs/developer.md:
--------------------------------------------------------------------------------
1 | # Developer's Guide
2 | ## Prerequisites
3 | The assumption Chaperone makes for developers is not something one would propose is
4 | light, but not out of the norm for many. We assume reasonable competence in the
5 | following:
6 |
7 | - VMware technologies
8 | - [Google Repo](https://code.google.com/p/git-repo/)
9 | - [git](https://git-scm.com/)
10 | - [gerrit](https://gerrit-review.googlesource.com/Documentation/install-quick.html)
11 | - [Python](https://www.python.org)
12 | - [Ansible](http://www.ansible.com)
13 |
14 | ## Contributing
15 | The Chaperone team welcomes contributions from the community.
16 |
17 | Submit issues and PRs through github.
18 |
19 | If you wish to contribute code and you have not signed our contributor license agreement
20 | (CLA), our bot will update the issue when you open a
21 | [Pull Request](https://help.github.com/articles/creating-a-pull-request).
22 | For any questions about the CLA process, please refer to our [FAQ](https://cla.vmware.com/faq).
23 |
24 | ## Getting the code
25 | [Instructions to setup](setup.md), install and deploy the Chaperone UI
26 | tools and underlying Ansible plays, Python modules and other required code
27 | bases are [here](setup.md)
28 |
29 | ## Structure and Standards
30 | *TODO*
31 |
32 | ## Development Workflow
33 |
34 | ### General public enhancements or fixes on individual code repositories
35 |
36 | #### Use case:
37 | You've found bug found in a single role or playbook, you would like to submit a fix,
38 | and you don't have push privileges to the original repository.
39 |
40 | #### the steps
41 | 1. Use an existing Chaperone base or run a typical `repo init` as described
42 | in the [setup docs](setup.md) to pull original Chaperone sources down
43 | 1. fork the original role or playbook repository in Github under your own account
44 | 1. add your remote in the source tree (` cd ansible/roles/role-to-fix; git remote add myfork https://github.com/myaccount/myrepo` )
45 | 1. make edits in the role/playbook, commit them
46 | 1. push your work to your fork: `git push myfork`
47 | 1. in github make a Pull Request from your fork to the origin repo
48 |
49 | *new contributors will need to fill out the [CLA](https://cla.vmware.com/faq).*
50 |
51 |
52 | ### Long Running Project
53 |
54 | In some cases, we need to do work for customers or for specific projects
55 | that will require long running divergence of the repo manifest. These manifest changes
56 | are may not intended to be pushed back to origin/master for public consumption, but
57 | must be available to other people working on the same project.
58 |
59 | #### Some examples of this use case:
60 |
61 | * Isolated environments, where access to public repositories is blocked by firewall
62 | * Team working on a feature not ready or intended for public release
63 |
64 | #### the steps
65 |
66 | 1. Github fork the chaperone manifest repo (https://github.com/vmware/chaperone)
67 | 1. clone your fork: `git clone git@github.com:yourname/chaperone.git`
68 | 1. edit the manifest as needed to point to internal, forked, or non-standard role/playbook
69 | repositories
70 | 1. `git commit` and `git push` to your fork
71 | 1. in a new project directory, checkout the new manifest:
72 | `repo init https://github.com/yourname/chaperone`
73 | 1. make your changes as needed
74 | 1. use `repo` as normal to work with your set of repos
75 | 1. team members can use your same `repo init` to make changes on the same set of repos
76 |
77 |
78 | If you later want to push changes back to the upstream master, create PRs back to the origin from your forked repos
79 |
--------------------------------------------------------------------------------
/docs/run.md:
--------------------------------------------------------------------------------
1 | Running Chaperone
2 | =================
3 | Chaperone, as a general tool, can be used to automate most any process. With
4 | that said, though, the tools currently taint their view a bit towards a
5 | VMware setup where a vCenter Server is available. Therefore we have a number
6 | of examples that might make the tools seem purely VMware, but do not let the
7 | samples fool -- it is a general purpose tool set as you will see when setting
8 | up UI forms and getting those to call on various processes.
9 |
10 | With the 'taint' noted above, once one or more of the Chaperone package tools
11 | has been [deployed](setup.md) to a Chaperone Deployment Server, a vCenter
12 | Server environment will be needed for the Chaperone tool to configure.
13 |
14 | ## Setting up a management environment: vCenter Servers
15 | When dealing with a SDDC utilizing VMware products, Chaperone requires some
16 | initial setup in a vCenter server environment. While the state of the setup may
17 | vary, for a development environment the typical configuration is:
18 |
19 | - A router that is exposed on an external IP address of the (possibly nested ESXi) environment;
20 | - A set of ESXi hosts;
21 | - A vCenter server and vSphere application managing the ESXi hosts;
22 | - An internal network to which all VM are connected;
23 | - A validly operating primary DNS server within the (nested) environment that can serve up the local (e.g., corp.local) names.
24 |
25 | Note: The Chaperone playbooks progressively set up and configure the vCenter
26 | server environment. In some instances when later stage playbooks are to be
27 | developed, it may be more efficient to use a vCenter developer environment that
28 | is more fully configured.
29 |
30 | ### Connectivity for Chaperone-UI
31 | For a development environment, there are two deployment configurations (see [Environments](env.md)).
32 |
33 | If the Chaperone Deployment Server is external to the vCenter Server
34 | environment, the vCenter server https port must be exposed externally through
35 | the any intermediary firewalls. It may also be useful to have a 'jump' server
36 | (VM) alongside the CDS so that you can start the vCenter web client as necessary
37 | to review vCenter. Such a jump server would use the DNS server above as its
38 | primary name server, thus would know any local domains (e.g., corp.local).
39 |
40 | If the CDS is deployed within the vCenter Server environment, a SSH port for
41 | the Chaperone Deployment Server must also be exposed through the router.
42 |
43 | ### Running Chaperone
44 | The Chaperone UI exposes (via a left-hand side menu system) 'Prepare' and
45 | 'Install' sections. The 'Prepare' section presents forms that accept configurations
46 | to be used in configuring the Data Center. This may be populated manually, or
47 | or the population can be preloaded by using an answerfile. (This is an advanced
48 | topic for which documentation is forthcoming).
49 |
50 | The 'Install' section exposes scripts that will actually set up the Data Center
51 | using the configurations in the Prepare section.
52 |
53 | Some of components install steps are prerequisites for later installs, so the
54 | initial order in which the scripts are run is important, for example:
55 |
56 | 1. Deploy vCenter Servers
57 | 1. Perform logical build (generate Datacenter, clusters, vDS/Portgroups, add ESXi hosts, etc.)
58 | 1. Data Center Deploy
59 | 1. Deploy NSX
60 | 1. Deploy vRLI
61 | 1. Deploy vROps
62 | 1. Deploy VIO
63 | 1. etc.
64 |
65 | To be sure, the operations available are quite flexible, and tuning Chaperone
66 | to a particular scenario is both encouraged and well supported given the
67 | entirety of the Prepare and Install menus are defined by YAML files. The
68 | project that implements the web interfaces and thus interprets and renders the
69 | YAML markup is [chaperone-ui](https://github.com/vmware/chaperone-ui.git).
70 |
71 |
72 | ### Web Based User Interfaces
73 |
74 | There are two interfaces with which users of Chaperone
75 | interact:
76 |
77 | - chaperone-admin-ui (e.g., 'http://chaperone-admin-ui.corp.local')
78 | - chaperone-ui (e.g., 'http://chaperone-ui.corp.local')
79 |
80 | *Note the use of internal domains in the URLs above. This is common where
81 | developers or users do not have rights to create new domains in their DNS
82 | servers, and thus make use of locally defined domains. More on that in the
83 | [setup documentation](setup.md).*
84 |
85 | #### Using the Chaperone Admin UI
86 |
87 | The admin UI (chaperone-admin-ui) is an interface that allows one to
88 | select from a list of SDDC features they would like to deploy, and basic
89 | ambient environment information, such as DNS servers, NTP servers, etc. Once
90 | entered into the various "Prepare" menu forms, clicking 'Save' saves the
91 | configuration as a 'codified design.' Basically, that means the information
92 | is saved in a YAML file as a set of parameters or, more commonly Ansible
93 | variables.
94 |
95 | Once the chaperone-admin-ui "Prepare" menu forms are complete and saved, the
96 | next step is clicking on the "Install" menu and thereafter "Saving the Configuration."
97 | That is a button on the "Install" menu that generates the second web interface,
98 | the chaperone-ui site.
99 |
100 | #### Using the Chaperone UI
101 | The chaperone-ui site is the site used to configure the SDDC installations.
102 | The process is the same as chaperone-admin-ui, wherein the user fills out the
103 | "Prepare" forms and saves them. Thereafter, the "Install" menu provides buttons for
104 | the various tasks that must be done to complete the SDDC install. To perform
105 | the various installations and configurations, Chaperone generally runs Ansible
106 | plays as a result of clicking on one of the Install menu buttons. The plays
107 | configure and deploy the environment, pursuant to the saved "Prepare" values.
108 |
--------------------------------------------------------------------------------
/docs/setup.md:
--------------------------------------------------------------------------------
1 | Chaperone Setup
2 | ===============
3 | Development and deployment of Chaperone tools require two VMs based on
4 | [VMware Photon OS](https://vmware.github.io/photon) or
5 | [Ubuntu Linux 64-bit](http://www.ubuntu.com/download/server):
6 |
7 | - **Development Environment (DE)** is the environment where the source code is
8 | downloaded, modified and built. This could be your laptop. In this document it will
9 | be an external ubuntu machine. See the
10 | [devbox setup](https://github.com/vmware/ansible-playbooks-chaperone/blob/master/devbox)
11 | for more automated means of setting up on Photon OS or a Mac.
12 |
13 | - **Chaperone Deployment Server (CDS)** is the build target for the development environment.
14 | All ansible playbooks will run from this machine, so its placement in the network
15 | physically and with regard to security rules should allow direct access to the machines
16 | being operated on.
17 |
18 | ### Worth repeating:
19 | To simply build and deploy the Chaperone GUI(s), any Ubuntu 64-bit
20 | instance is sufficient. However, in order to run the Chaperone and to set
21 | up the vCenter environment, the CDS must have access to, or be installed
22 | within, the vCenter Server environment. Additional information on
23 | deployment options and vCenter Server requirements is available [here](env.md)
24 |
25 |
26 | Getting Started
27 | ---------------
28 |
29 | ## Setting up the Chaperone Deployment Server
30 |
31 | ### Assumptions
32 | - For a CDS server built from an Ubuntu Linux 64-bit machine
33 |
34 | ### Add a vmware user
35 | sudo adduser vmware
36 | sudo adduser vmware sudo
37 |
38 | ### Get the IP address of the CDS:
39 |
40 | If the CDS is running in the same environment as the DE, simply get the
41 | ip address:
42 |
43 | ip address
44 |
45 | If the CDS is running in a vCenter environment and the DE is not, the
46 | CDS will need to be exposed through an external ip. See [Environments](env.md)
47 |
48 |
49 | ## Setting up the Development Environment
50 |
51 | ### Assumptions
52 | - The DE is an Ubuntu Linux 64-bit machine
53 |
54 | ### Add a vmware user
55 | sudo adduser vmware
56 | sudo adduser vmware sudo
57 |
58 | *Complete the rest of the steps as the vmware user*
59 |
60 | ### Setup For Github Access
61 |
62 | Install [google repo](https://source.android.com/source/downloading.html) in the
63 | development environment
64 |
65 | Install and configure git
66 |
67 | sudo apt-get install git
68 | git config --global user.email "your@email.com"
69 | git config --global user.name "Your Name"
70 |
71 | Where your email and name are replaced with those associated with your github id
72 |
73 | *Note: Be aware that the ansible playbooks that setup the DE will
74 | create ssh keys and place them in the default location (~/.ssh/id_rsa)
75 | for the vmware user.*
76 |
77 | ### Install Ansible
78 | Run these commands on the DE server:
79 |
80 | sudo apt-get install -y python-pip python-dev
81 | sudo easy_install pip
82 | sudo pip install ansible
83 |
84 | *Note: If an existing environment is being used and ansible has been installed
85 | through other means, it may be necessary to remove it and reinstall using pip.*
86 |
87 | ### Pull the Chaperone Code to the DE
88 | Once Gerrit access is working, you can pull the code base on to your
89 | development host:
90 |
91 | ```
92 | mkdir chaperone
93 | cd chaperone
94 | repo init -u https://github.com/vmware/chaperone -b master -g chaperone
95 | repo sync
96 | ```
97 |
98 | ### Setup the DE with basic tools
99 |
100 | For a non-X11 based, pure terminal VM with vim installed:
101 |
102 | ```
103 | cd ansible/playbooks/ansible
104 | ansible-playbook --ask-sudo-pass -i inventory ansible.yml
105 | ```
106 |
107 | For a setup with LXDE (X11) and the Geany editor:
108 |
109 | ```
110 | cd ansible/playbooks/ansible
111 | ansible-playbook --ask-sudo-pass -i inventory ansible-lxde.yml
112 | ```
113 |
114 | ### Setup the DE /etc/hosts with the CDS IP address
115 |
116 | Chaperone requires a DNS resolvable address for
117 | chaperone servers. In case you cannot obtain one, add a line in the
118 | `/etc/hosts` file within the DE server with the following:
119 |
120 | ```
121 | CDS_IP_ADDRESS chaperone-ui.corp.local chaperone-admin-ui.corp.local
122 | ```
123 |
124 | where CDS_IP_ADDRESS is the actual dotted quad address of the CDS.
125 |
126 | #### Special Note about Domains:
127 |
128 | The default domain name for most things Chaperone is "corp.local" for
129 | development VMs or containers. However, at times (arguably often) work
130 | will occur on remote vCenter server environments, which generally use a
131 | other domain names (such as "corp.local").
132 |
133 | Given that, take care to understand the actual domain names your DNS server
134 | serves in the event it is providing local domains, for example,
135 | chaperone-ui.corp.local.
136 |
137 | ### Assure Ansible Inventory file correctness:
138 |
139 | An example inventory file for Ansible playbook runs within the
140 | [ansible-playbooks-chaperone](https://github.com/vmware/ansible-playbooks-chaperone.git)
141 | project runs generally exist at "examples/inventory" in that project. You can
142 | reference that directly in the ansible-playbook runs as in:
143 |
144 | ```
145 | ansible-playbook -i examples/inventory someplaybook.yml
146 | ```
147 |
148 | If you need to modify the inventory you can just copy that file to the
149 | playbooks directory where you will run ansible-playbook, for example from within the
150 | path "ansible/playbooks/chaperone-ui" within your repo synced work area:
151 |
152 | ```
153 | cp examples/inventory .
154 | ```
155 |
156 | You can then modify the copied inventory for your local modifications. There
157 | is a .gitignore file in place that will ignore your changes when committing
158 | code, so you need not worry about others getting affected by your changes.
159 |
160 | An example for modifying the inventory file might be where your CDS is exposed
161 | on a port other the 22 for SSH access. In that case you would need to add the
162 | port to the inventory file in playbook project that will be built.
163 |
164 | For example, the file (assuming ~/chaperone is your working tree for repo sync),
165 | the file:
166 |
167 | ```
168 | ~/chaperone/ansible/playbooks/chaperone-ui/inventory
169 | ```
170 |
171 | would contain your local modification to contain something similar to:
172 |
173 | ```
174 | [chaperone-ui]
175 | chaperone-ui.corp.local ssh_port=8422
176 | ```
177 |
178 | so that thereafter playbook runs will use port 8422 when connecting via SSH.
179 |
180 | *See http://docs.ansible.com/ansible/intro_inventory.html for more details on special
181 | considerations of the inventory file.*
182 |
183 |
184 | #### Special Note about Variables:
185 |
186 | There are variables in some of the playbooks, and inventory files, that
187 | require care and attention if the target environment has a domain
188 | different from the default.
189 |
190 | ## Deploy the CDS GUIs and tools
191 |
192 | To setup the Chaperone UI on the CDS, run the following playbooks from the DE:
193 |
194 | ```
195 | cd ~/chaperone/ansible/playbooks/chaperone-ui
196 |
197 | # be sure to update the inventory and /etc/hosts files to
198 | # use the correct address of the CDS
199 | ansible-playbook -i examples/inventory site.yml
200 | ```
201 |
202 |
203 | ## Configure and deploy
204 |
205 | Chaperone is a tool that allows for creating a multitude of user interfaces
206 | by adding ansible templates. Each Chaperone tool is accessed through a
207 | descriptive DNS name in the format "(XXX)-ui.corp.local" where XXX might be
208 | something like "mycooltool", sddc or even something as simple as cna to denote
209 | the package configuration the tool you want to create and later deploy.
210 | Entries for each tool deployed need to either be added to the /etc/hosts or in
211 | the dns table of the system running the browser that accesses the application.
212 |
213 | Open a browser to http://(XXX)-ui.corp.local and
214 | http://(XXX)-admin-ui.corp.local, thereafter you should see the Web UIs.
215 | Fill in the forms with environment specific data, and 'Save' will store the
216 | answers in an answerfile.yml later used by the ansible playbooks.
217 |
218 | Alternatively, you can create an answerfile.yml by cutting and pasting the
219 | contents of a sample file into the answerfile.yml located at /var/lib/(XXX)
220 | on the Chaperone Deployment server.
221 |
222 | TODO: Link to sample answer files for each package tool
223 |
224 | ## Next Step: Running the Chaperone Tool
225 | See [Running Chaperone](run.md)
226 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Chaperone
2 | =========
3 | [](https://travis-ci.org/vmware/chaperone)
4 |
5 | Chaperone is an Automation toolkit rooted in DevOps principals for deploying
6 | and configuring a Software Defined Data Center (SDDC) based Hybrid Cloud
7 | Management platform. It is intended to expedite and standardize "typical"
8 | deployments and configuration of VMware solutions including vSphere/vCenter,
9 | NSX, VIO, vRA, vRO, vROps, vRLI, vRB and others as the toolkit grows.
10 |
11 | Chaperone is a work in progress. We will continue to
12 | add new functionality and products to the Chaperone base.
13 |
14 |
15 | ## Chaperone Overview
16 |
17 | ### Current Standard Configurations Supported
18 |
19 | The ansible playbooks are used to configure and deploy several standard platforms.
20 | The following are under active development, but are considered fairly complete:
21 |
22 | - Chaperone for VIO (Open Stack Integration)
23 | - Chaperone for CNA (Cloud Native Application Platform)
24 | - Chaperone for CMP (Hybrid Cloud Management Platform)
25 |
26 | ### Experimental Configurations
27 |
28 | The following are under active development
29 | - Chaperone for NSX
30 | - Chaperone for VxRails
31 | - Chaperone for kubernetes
32 | - Chaperone for IOT platforms
33 |
34 | ### Setup and Run Chaperone
35 |
36 | There are guides for [setting up](docs/setup.md) and [running](docs/run.md)
37 | the Chaperone tools against an appropriate SDDC environment.
38 |
39 | ### Development
40 |
41 | Read the [developer guide](docs/developer.md) if you are interested in the
42 | development process of Chaperone
43 |
44 | ### Chaperone Sub-components
45 |
46 | Chaperone is built from lots of smaller pieces with a glue of UI and Ansible Playbooks.
47 |
48 | The following is a current list of sub-projects:
49 |
50 | - [chaperone-ui](https://github.com/vmware/chaperone-ui)
51 | - [ansible-playbooks-chaperone](https://github.com/vmware/ansible-playbooks-chaperone)
52 | - [ansible-modules-extras-gpl3](https://github.com/vmware/ansible-modules-extras-gpl3)
53 | - [ansible-module-chaperone](https://github.com/vmware/ansible-module-chaperone)
54 | - [nsxansible.git](https://github.com/vmware/nsxansible.git)
55 | - [nsxraml.git](https://github.com/vmware/nsxraml.git)
56 | - [ansible-role-jenkins](https://github.com/vmware/ansible-role-jenkins)
57 | - [ansible-role-haproxy](https://github.com/vmware/ansible-role-haproxy)
58 | - [ansible-role-ansible](https://github.com/vmware/ansible-role-ansible)
59 | - [ansible-role-assets](https://github.com/vmware/ansible-role-assets)
60 | - [ansible-role-autodeploy](https://github.com/vmware/ansible-role-autodeploy)
61 | - [ansible-role-chaperone](https://github.com/vmware/ansible-role-chaperone)
62 | - [ansible-role-dnsmasq](https://github.com/vmware/ansible-role-dnsmasq)
63 | - [ansible-role-docker](https://github.com/vmware/ansible-role-docker)
64 | - [ansible-role-govc](https://github.com/vmware/ansible-role-govc)
65 | - [ansible-role-iptables](https://github.com/vmware/ansible-role-iptables)
66 | - [ansible-role-kibana](https://github.com/vmware/ansible-role-kibana)
67 | - [ansible-role-kubernetes-master](https://github.com/vmware/ansible-role-kubernetes-master)
68 | - [ansible-role-kubernetes-node](https://github.com/vmware/ansible-role-kubernetes-node)
69 | - [ansible-role-elasticsearch](https://github.com/vmware/ansible-role-elasticsearch)
70 | - [ansible-role-liota](https://github.com/vmware/ansible-role-liota)
71 | - [ansible-role-logstash-server](https://github.com/vmware/ansible-role-logstash-server)
72 | - [ansible-role-net](https://github.com/vmware/ansible-role-net)
73 | - [ansible-role-nfs](https://github.com/vmware/ansible-role-nfs)
74 | - [ansible-role-nsx](https://github.com/vmware/ansible-role-nsx)
75 | - [ansible-role-ovftool](https://github.com/vmware/ansible-role-ovftool)
76 | - [ansible-role-photon](https://github.com/vmware/ansible-role-photon)
77 | - [ansible-role-pip](https://github.com/vmware/ansible-role-pip)
78 | - [ansible-role-registrator](https://github.com/vmware/ansible-role-registrator)
79 | - [ansible-role-repo](https://github.com/vmware/ansible-role-repo)
80 | - [ansible-role-sshkeys](https://github.com/vmware/ansible-role-sshkeys)
81 | - [ansible-role-sudo](https://github.com/vmware/ansible-role-sudo)
82 | - [ansible-role-vcenter](https://github.com/vmware/ansible-role-vcenter)
83 | - [ansible-role-vcsa](https://github.com/vmware/ansible-role-vcsa)
84 | - [ansible-role-vio](https://github.com/vmware/ansible-role-vio)
85 | - [ansible-role-vrops](https://github.com/vmware/ansible-role-vrops)
86 | - [ansible-role-vra](https://github.com/vmware/ansible-role-vra)
87 | - [ansible-role-vrli](https://github.com/vmware/ansible-role-vrli)
88 | - [ansible-role-vrb](https://github.com/vmware/ansible-role-vrb)
89 | - [ansible-role-vrpt](https://github.com/vmware/ansible-role-vrpt)
90 | - [docker-chaperone](https://github.com/vmware/docker-chaperone)
91 | - [docker-collectd](https://github.com/vmware/docker-collectd)
92 | - [docker-elasticsearch](https://github.com/vmware/docker-elasticsearch)
93 | - [docker-graphite-api](https://github.com/vmware/docker-graphite-api)
94 | - [docker-jenkins](https://github.com/vmware/docker-jenkins)
95 | - [docker-kibana](https://github.com/vmware/docker-kibana)
96 | - [docker-logstash-server](https://github.com/vmware/docker-logstash-server)
97 | - [docker-vrpt](https://github.com/vmware/docker-vrpt)
98 | - [ViaSat/ansible-vsphere.git](https://github.com/ViaSat/ansible-vsphere.git)
99 | - [tomhite/ansible-xml](https://github.com/tomhite/ansible-xml)
100 | - [tomhite/ansible-role-apache.git](https://github.com/tomhite/ansible-role-apache.git)
101 | - [tomhite/ansible-role-collectd](https://github.com/tomhite/ansible-role-collectd)
102 | - [tomhite/ansible-role-consul](https://github.com/tomhite/ansible-role-consul)
103 | - [tomhite/ansible-role-graphite-api](https://github.com/tomhite/ansible-role-graphite-api)
104 | - [ajsalminen/ansible-role-hosts.git](https://github.com/ajsalminen/ansible-role-hosts.git)
105 | - [weareinteractive/ansible-nginx.git](https://github.com/weareinteractive/ansible-nginx.git)
106 | - [weareinteractive/ansible-openssl](https://github.com/weareinteractive/ansible-openssl)
107 | - [weareinteractive/ansible-htpasswd.git](https://github.com/weareinteractive/ansible-htpasswd.git)
108 | - Meta
109 | - [link to PRs](http://github.com/search?q=is%3Apr%20repo%3Avmware/chaperone-ui%20repo%3Avmware/ansible-playbooks-chaperone%20repo%3Avmware/ansible-modules-extras-gpl3%20repo%3Avmware/ansible-module-chaperone%20repo%3Avmware/nsxansible.git%20repo%3Avmware/nsxraml.git%20repo%3Avmware/ansible-role-jenkins%20repo%3Avmware/ansible-role-haproxy%20repo%3Avmware/ansible-role-ansible%20repo%3Avmware/ansible-role-assets%20repo%3Avmware/ansible-role-autodeploy%20repo%3Avmware/ansible-role-chaperone%20repo%3Avmware/ansible-role-dnsmasq%20repo%3Avmware/ansible-role-docker%20repo%3Avmware/ansible-role-govc%20repo%3Avmware/ansible-role-iptables%20repo%3Avmware/ansible-role-kibana%20repo%3Avmware/ansible-role-kubernetes-master%20repo%3Avmware/ansible-role-kubernetes-node%20repo%3Avmware/ansible-role-elasticsearch%20repo%3Avmware/ansible-role-liota%20repo%3Avmware/ansible-role-logstash-server%20repo%3Avmware/ansible-role-net%20repo%3Avmware/ansible-role-nfs%20repo%3Avmware/ansible-role-nsx%20repo%3Avmware/ansible-role-ovftool%20repo%3Avmware/ansible-role-photon%20repo%3Avmware/ansible-role-pip%20repo%3Avmware/ansible-role-registrator%20repo%3Avmware/ansible-role-repo%20repo%3Avmware/ansible-role-sshkeys%20repo%3Avmware/ansible-role-sudo%20repo%3Avmware/ansible-role-vcenter%20repo%3Avmware/ansible-role-vcsa%20repo%3Avmware/ansible-role-vio%20repo%3Avmware/ansible-role-vrops%20repo%3Avmware/ansible-role-vra%20repo%3Avmware/ansible-role-vrli%20repo%3Avmware/ansible-role-vrb%20repo%3Avmware/ansible-role-vrpt%20repo%3Avmware/docker-chaperone%20repo%3Avmware/docker-collectd%20repo%3Avmware/docker-elasticsearch%20repo%3Avmware/docker-graphite-api%20repo%3Avmware/docker-jenkins%20repo%3Avmware/docker-kibana%20repo%3Avmware/docker-logstash-server%20repo%3Avmware/docker-vrpt%20repo%3AViaSat/ansible-vsphere.git%20repo%3Atomhite/ansible-xml%20repo%3Atomhite/ansible-role-apache.git%20repo%3Atomhite/ansible-role-collectd%20repo%3Atomhite/ansible-role-consul%20repo%3Atomhite/ansible-role-graphite-api%20repo%3Aajsalminen/ansible-role-hosts.git%20repo%3Aweareinteractive/ansible-nginx.git%20repo%3Aweareinteractive/ansible-openssl%20repo%3Aweareinteractive/ansible-htpasswd.git)
110 | - [link to Issues](http://github.com/search?q=is%3Aissue%20repo%3Avmware/chaperone-ui%20repo%3Avmware/ansible-playbooks-chaperone%20repo%3Avmware/ansible-modules-extras-gpl3%20repo%3Avmware/ansible-module-chaperone%20repo%3Avmware/nsxansible.git%20repo%3Avmware/nsxraml.git%20repo%3Avmware/ansible-role-jenkins%20repo%3Avmware/ansible-role-haproxy%20repo%3Avmware/ansible-role-ansible%20repo%3Avmware/ansible-role-assets%20repo%3Avmware/ansible-role-autodeploy%20repo%3Avmware/ansible-role-chaperone%20repo%3Avmware/ansible-role-dnsmasq%20repo%3Avmware/ansible-role-docker%20repo%3Avmware/ansible-role-govc%20repo%3Avmware/ansible-role-iptables%20repo%3Avmware/ansible-role-kibana%20repo%3Avmware/ansible-role-kubernetes-master%20repo%3Avmware/ansible-role-kubernetes-node%20repo%3Avmware/ansible-role-elasticsearch%20repo%3Avmware/ansible-role-liota%20repo%3Avmware/ansible-role-logstash-server%20repo%3Avmware/ansible-role-net%20repo%3Avmware/ansible-role-nfs%20repo%3Avmware/ansible-role-nsx%20repo%3Avmware/ansible-role-ovftool%20repo%3Avmware/ansible-role-photon%20repo%3Avmware/ansible-role-pip%20repo%3Avmware/ansible-role-registrator%20repo%3Avmware/ansible-role-repo%20repo%3Avmware/ansible-role-sshkeys%20repo%3Avmware/ansible-role-sudo%20repo%3Avmware/ansible-role-vcenter%20repo%3Avmware/ansible-role-vcsa%20repo%3Avmware/ansible-role-vio%20repo%3Avmware/ansible-role-vrops%20repo%3Avmware/ansible-role-vra%20repo%3Avmware/ansible-role-vrli%20repo%3Avmware/ansible-role-vrb%20repo%3Avmware/ansible-role-vrpt%20repo%3Avmware/docker-chaperone%20repo%3Avmware/docker-collectd%20repo%3Avmware/docker-elasticsearch%20repo%3Avmware/docker-graphite-api%20repo%3Avmware/docker-jenkins%20repo%3Avmware/docker-kibana%20repo%3Avmware/docker-logstash-server%20repo%3Avmware/docker-vrpt%20repo%3AViaSat/ansible-vsphere.git%20repo%3Atomhite/ansible-xml%20repo%3Atomhite/ansible-role-apache.git%20repo%3Atomhite/ansible-role-collectd%20repo%3Atomhite/ansible-role-consul%20repo%3Atomhite/ansible-role-graphite-api%20repo%3Aajsalminen/ansible-role-hosts.git%20repo%3Aweareinteractive/ansible-nginx.git%20repo%3Aweareinteractive/ansible-openssl%20repo%3Aweareinteractive/ansible-htpasswd.git)
111 |
112 | ## License and Copyright
113 |
114 | Copyright 2016 VMware, Inc.
115 |
116 | Licensed under the Apache License, Version 2.0 (the "License");
117 | you may not use this file except in compliance with the License.
118 | You may obtain a copy of the License at
119 |
120 | http://www.apache.org/licenses/LICENSE-2.0
121 |
122 | Unless required by applicable law or agreed to in writing, software
123 | distributed under the License is distributed on an "AS IS" BASIS,
124 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
125 | See the License for the specific language governing permissions and
126 | limitations under the License.
127 |
128 |
129 | ## Author Information
130 |
131 | Initially created in 2015 by [Tom Hite / VMware](http://www.vmware.com/).
132 |
--------------------------------------------------------------------------------
/vmwareorg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
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 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
--------------------------------------------------------------------------------