├── 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) [![Build Status](https://travis-ci.org/%s/%s.svg?branch=master)](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 | ![](CDSExtDeployment.png) 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 | ![](CDSIntDeployment.png) 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 | [![Build Status](https://travis-ci.org/vmware/chaperone.svg?branch=master)](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 | --------------------------------------------------------------------------------