diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..be65e13
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,113 @@
+c# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+env/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+*.egg-info/
+.installed.cfg
+*.egg
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*,cover
+.hypothesis/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# IPython Notebook
+.ipynb_checkpoints
+
+# pyenv
+.python-version
+
+# celery beat schedule file
+celerybeat-schedule
+
+# dotenv
+.env
+
+# virtualenv
+venv/
+ENV/
+
+# Spyder project settings
+.spyderproject
+
+# Rope project settings
+.ropeproject
+
+.vagrant
+*.iml
+archives
+.DS_Store
+ssh_keys
+ansible.log
+*.zip
+license.txt
+*.log
+*.tar.gz
+*.rpm
+*.tar
+ansible_fact_cache_dir
+*jar
+.ansible_cache*
+configs_and_logs
+redhat-rhui.repo
+rhui-load-balancers.conf
+out
+.idea
+*iml
+*retry
+installations/aio/installation-logs-configs/*
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..cf044ce
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,224 @@
+ ====
+
+    Copyright 2016 Apigee Corporation
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to
+    deal in the Software without restriction, including without limitation the
+    rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+    sell copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in
+    all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+    IN THE SOFTWARE.
+
+====
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2016 Apigee Corp
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ed803af
--- /dev/null
+++ b/README.md
@@ -0,0 +1,46 @@
+Apigee Mirror Playbook Sample
+=============================
+
+This playbook demonstrate how to work with an Apigee OPDK mirror. This playbook creates an installation with the 
+components needed to carry out the following activities: 
+ 
+ * Create an Apigee Mirror
+ * Retrieve an Apigee Mirror
+ * Upload an Apigee Mirror
+ * Install an Apigee Mirror
+ 
+# Creating and Retrieving an Apigee Mirror
+Assuming you need to create an Apigee mirror, then you can use the following playbook with default settings to create a 
+minimum environment that will create and download an Apigee mirror: 
+
+    ansible-playbook create_download_apigee_mirror.yml -vv -b
+    
+## Create an Apigee Mirror
+Assuming you have a working instance of Apigee OPDK and you need to create an Apigee mirror with the playbook default 
+settings, then you can use the following:
+
+    ansible-playbook create_download_apigee_mirror.yml -vv -b --tags=create
+    
+## Retrieve an Apigee Mirror
+Assuming you have created an Apigee OPDK mirror with the default settings and you need to download an Apigee mirror, 
+then you can use the following playbook: 
+ 
+    ansible-playbook create_download_apigee_mirror.yml -vv -b --tags=download
+
+# Uploading and Installing an Apigee Mirror
+Assuming you need to upload and install an Apigee mirror with the playbook default settings, then you can use the 
+following:
+   
+    ansible-playbook upload_install_apigee_mirror.yml -vv -b
+    
+## Upload an Apigee Mirror
+Assuming you have an Apigee OPDK mirror in the location set by the playbook default settings and you need to upload the
+mirror to a server, then you can use the following:
+
+    ansible-playbook upload_install_apigee_mirror.yml -vv -b --tags=upload
+
+## Install an Apigee Mirror
+Assuming you have an Apigee OPDK mirror already uploaded to the location set by the playbook default settings and you 
+need to install that Apigee mirror, then you can use the following:
+
+    ansible-playbook upload_install_apigee_mirror.yml -vv -b --tags=install
diff --git a/clean.yml b/clean.yml
new file mode 100644
index 0000000..72ff1ad
--- /dev/null
+++ b/clean.yml
@@ -0,0 +1,17 @@
+---
+- hosts: localhost
+  connection: local
+
+  tasks:
+  - name: Remove .ansible_cache
+    file:
+      path: '{{ item }}'
+      state: absent
+      force: yes
+    with_items:
+    - '~/.ansible/tmp/cache'
+    - '~/.ansible/tmp/ansible.log'
+    - 'ssh_keys'
+    - 'configs_and_logs'
+    - 'rpm_resources'
+
diff --git a/components/opdk-create-download-apigee-mirror.yml b/components/opdk-create-download-apigee-mirror.yml
new file mode 100644
index 0000000..0844a2d
--- /dev/null
+++ b/components/opdk-create-download-apigee-mirror.yml
@@ -0,0 +1,56 @@
+---
+- hosts: '{{ hosts }}'
+  vars_files:
+  - ~/.apigee/credentials.yml
+  roles:
+  - apigee-opdk-setup-apigee-user
+  tags:
+  - user
+
+- hosts: '{{ hosts }}'
+  vars_files:
+  - ~/.apigee/credentials.yml
+  roles:
+  - apigee-opdk-setup-os-limits
+  tags:
+  - os
+
+- hosts: '{{ hosts }}'
+  roles:
+  - apigee-opdk-setup-openjdk
+  tags:
+  - openjdk
+
+- hosts: '{{ hosts }}'
+  vars_files:
+  - ~/.apigee/credentials.yml
+  roles:
+  - apigee-opdk-setup-bootstrap
+  tags:
+  - bootstrap
+
+- hosts: '{{ hosts }}'
+  vars_files:
+  - ~/.apigee/credentials.yml
+  roles:
+  - apigee-opdk-setup-silent-installation-config
+  - apigee-opdk-setup-component-installer
+  tags:
+  - installer
+
+- hosts: '{{ hosts }}'
+  vars_files:
+  - ~/.apigee/credentials.yml
+  roles:
+  - apigee-opdk-setup-bootstrap-create-archive
+  tags:
+  - create
+
+- hosts: '{{ hosts }}'
+  vars_files:
+  - ~/.apigee/credentials.yml
+  roles:
+  - apigee-opdk-setup-bootstrap-download-archive
+  tags:
+  - download
+
diff --git a/components/opdk-upload-install-apigee-mirror.yml b/components/opdk-upload-install-apigee-mirror.yml
new file mode 100644
index 0000000..c49daa1
--- /dev/null
+++ b/components/opdk-upload-install-apigee-mirror.yml
@@ -0,0 +1,17 @@
+c---
+- hosts: '{{ hosts }}'
+  serial: 1
+  vars_files:
+  - ~/.apigee/credentials.yml
+  roles:
+  - apigee-opdk-setup-bootstrap-upload-archive
+  tags:
+  - upload
+
+- hosts: '{{ hosts }}'
+  vars_files:
+  - ~/.apigee/credentials.yml
+  roles:
+  - apigee-opdk-setup-bootstrap-archive-installer
+  tags:
+  - install
diff --git a/configuration/load-opdk-credentials.yml b/configuration/load-opdk-credentials.yml
new file mode 100644
index 0000000..afd76f6
--- /dev/null
+++ b/configuration/load-opdk-credentials.yml
@@ -0,0 +1,8 @@
+---
+- hosts: '{{ hosts }}'
+  become: yes
+  gather_facts: no
+  strategy: free
+  tasks:
+  - name: Load credentials from file
+    include_vars: '~/.apigee/credentials.yml'
\ No newline at end of file
diff --git a/configuration/opdk-setup-os.yml b/configuration/opdk-setup-os.yml
new file mode 100644
index 0000000..b0461fe
--- /dev/null
+++ b/configuration/opdk-setup-os.yml
@@ -0,0 +1,15 @@
+---
+- hosts: '{{ hosts }}'
+  become: yes
+  gather_facts: no
+  strategy: free
+  pre_tasks:
+  - name: Load credentials from file
+    include_vars: '~/.apigee/credentials.yml'
+  roles:
+  - apigee-opdk-setup-os-minimum
+  - apigee-opdk-setup-selinux-disable
+  - apigee-opdk-shutdown-iptables
+  - apigee-opdk-time-sync
+  - apigee-opdk-setup-os-common
+
diff --git a/configuration/update-user.yml b/configuration/update-user.yml
new file mode 100644
index 0000000..98c405f
--- /dev/null
+++ b/configuration/update-user.yml
@@ -0,0 +1,39 @@
+---
+- hosts: '{{ hosts }}'
+  become: yes
+
+  vars:
+    pubkey: '~/.ssh/id_rsa.pub'
+
+  vars_files:
+  - ~/.apigee/credentials.yml
+
+  tasks:
+  - name: Build EC2 facts cache
+    ec2_facts:
+
+  - name: Build setup facts cache
+    setup:
+
+  - name: Copy local public keys to server for user {{ user }}
+    authorized_key:
+      user: '{{ user }}'
+      state: present
+      key: "{{ lookup('file', '{{ pubkey }}') }}"
+
+  - name: Permit root login over SSH
+    lineinfile:
+      state: present
+      dest: /etc/ssh/sshd_config
+      regexp: '(^#)(PermitRootLogin yes)'
+      line: '\2'
+      backrefs: yes
+    notify:
+    - Restart SSH service
+    when: user == 'root'
+
+  handlers:
+  - name: Restart SSH service
+    service:
+      name: sshd
+      state: restarted
diff --git a/create_download_apigee_mirror.yml b/create_download_apigee_mirror.yml
new file mode 100644
index 0000000..ab9e91a
--- /dev/null
+++ b/create_download_apigee_mirror.yml
@@ -0,0 +1,21 @@
+---
+- include: configuration/opdk-setup-os.yml
+  vars:
+    hosts: 'planet'
+  tags:
+  - os
+
+- include: configuration/update-user.yml
+  vars:
+    hosts: 'planet'
+    user: 'root'
+  tags:
+  - user
+
+- include: components/opdk-create-download-apigee-mirror.yml
+  vars:
+    hosts: 'planet[0]'
+    jdk_version: '1.8'
+  tags:
+  - create_download
+
diff --git a/requirements.yml b/requirements.yml
new file mode 100644
index 0000000..6d819cf
--- /dev/null
+++ b/requirements.yml
@@ -0,0 +1,60 @@
+---
+- src: https://github.com/carlosfrias/apigee-opdk-setup-default-settings
+  name: apigee-opdk-setup-default-settings
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-bootstrap-create-archive
+  name: apigee-opdk-setup-bootstrap-create-archive
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-os-minimum
+  name: apigee-opdk-setup-os-minimum
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-default-settings
+  name: apigee-opdk-setup-default-settings
+
+- src: https://github.com/carlosfrias/apigee-opdk-time-sync
+  name: apigee-opdk-time-sync
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-os-common
+  name: apigee-opdk-setup-os-common
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-apigee-user
+  name: apigee-opdk-setup-apigee-user
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-os-limits
+  name: apigee-opdk-setup-os-limits
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-selinux-disable
+  name: apigee-opdk-setup-selinux-disable
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-openjdk
+  name: apigee-opdk-setup-openjdk
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-bootstrap
+  name: apigee-opdk-setup-bootstrap
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-bootstrap-rollback
+  name: apigee-opdk-setup-bootstrap-rollback
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-bootstrap-upload-archive
+  name: apigee-opdk-setup-bootstrap-upload-archive
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-bootstrap-archive-installer
+  name: apigee-opdk-setup-bootstrap-archive-installer
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-bootstrap-upload-archive
+  name: apigee-opdk-setup-bootstrap-archive-installer
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-bootstrap-archive-installer
+  name: apigee-opdk-setup-bootstrap-archive-installer
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-silent-installation-config
+  name: apigee-opdk-setup-silent-installation-config
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-component-installer
+  name: apigee-opdk-setup-component-installer
+
+- src: https://github.com/carlosfrias/apigee-opdk-shutdown-iptables
+  name: apigee-opdk-shutdown-iptables
+
+- src: https://github.com/carlosfrias/apigee-opdk-setup-bootstrap-download-archive
+  name: apigee-opdk-setup-bootstrap-download-archive
diff --git a/upload_install_apigee_mirror.yml b/upload_install_apigee_mirror.yml
new file mode 100644
index 0000000..3b024c6
--- /dev/null
+++ b/upload_install_apigee_mirror.yml
@@ -0,0 +1,12 @@
+---
+- include: configuration/load-opdk-credentials.yml
+  vars:
+    hosts: 'planet'
+
+- include: components/opdk-upload-install-apigee-mirror.yml
+  vars:
+    hosts: 'planet'
+    jdk_version: '1.8'
+  tags:
+  - upload_install
+
