diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..75a0526
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,112 @@
+# 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
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..36bbf62
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,29 @@
+---
+language: python
+python: "2.7"
+
+# Use the new container infrastructure
+sudo: false
+
+# Install ansible
+addons:
+  apt:
+    packages:
+    - python-pip
+
+install:
+  # Install ansible
+  - pip install ansible
+
+  # Check ansible version
+  - ansible --version
+
+  # Create ansible.cfg with correct roles_path
+  - printf '[defaults]\nroles_path=../' >ansible.cfg
+
+script:
+  # Basic role syntax check
+  - ansible-playbook tests/test.yml -i tests/inventory --syntax-check
+
+notifications:
+  webhooks: https://galaxy.ansible.com/api/v1/notifications/
\ No newline at end of file
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..f566311
--- /dev/null
+++ b/README.md
@@ -0,0 +1,75 @@
+Apigee Setup Organization
+=========================
+
+This role sets up an Apigee organization. 
+
+Requirements
+------------
+
+The Ansible setup module should be executed. 
+
+Role Variables
+--------------
+
+admin_user: Administrative user name
+admin_pass: Administrative user password
+user_name: User email address
+user_pass: User password
+first_name: User first name
+last_name: User last name
+org_name: Organization name
+virtual_host_port: Virtual host port
+virtual_host_name: Virtual host name
+virtual_host_alias: Virtual host alias
+env_name: Name of environment to create
+management_server_addr: Host name or ip of the management server
+management_server_port: Port numnber of the management server
+management_server_host: Full ip address and port to the management server
+
+apigee_installation_path_prefix: Apigee installation directory parent
+apigee_installation_home: Apigee installation directory
+apigee_bin: Apigee binary directory
+apigee_conf:  Apigee configuration directory
+all_status: Apigee all status script
+all_start: Apigee all start script
+all_stop: Apigee all stop script
+
+create_user: Apigee create user script
+create_org: Apigee create organization script
+create_roles: Apigee create roles script
+add_env: Apigee add environment script
+
+Dependencies
+------------
+
+The role requires depends on the opdk-setup-installer and on the 
+execution of a profile that would configure the management server. We 
+can't associate the dependency to those roles until we can choose that a 
+given role from several has been applied. Currently this can be one of:
+- opdk-setup-aio
+- opdk-setup-ms
+- ( Standalone profile when we create that role :-) ) 
+
+Example Playbook
+----------------
+
+Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
+
+    ---
+    - hosts: '{{ hosts }}'
+      become: yes
+      
+      roles:
+        - <Some role profile that installs and configures a management server>
+        - opdk-setup-org
+
+License
+-------
+
+Apache License Version 2.0, January 2004
+
+Author Information
+------------------
+
+Carlos Frias
+
diff --git a/defaults/main.yml b/defaults/main.yml
new file mode 100644
index 0000000..b5b46fb
--- /dev/null
+++ b/defaults/main.yml
@@ -0,0 +1,6 @@
+---
+# defaults file for opdk-setup-org
+create_user: "{{ apigee_bin }}/create-user.sh"
+create_org: "{{ apigee_bin }}/create-org.sh"
+create_roles: "{{ apigee_bin }}/create-roles.sh"
+add_env: "{{ apigee_bin }}/add-env.sh"
diff --git a/handlers/main.yml b/handlers/main.yml
new file mode 100644
index 0000000..7778fcd
--- /dev/null
+++ b/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for opdk-setup-org
diff --git a/meta/main.yml b/meta/main.yml
new file mode 100644
index 0000000..3e1e24b
--- /dev/null
+++ b/meta/main.yml
@@ -0,0 +1,44 @@
+galaxy_info:
+  author: your name
+  description: 
+  company: your company (optional)
+  
+  # If the issue tracker for your role is not on github, uncomment the
+  # next line and provide a value
+  # issue_tracker_url: http://example.com/issue/tracker
+  
+  # Some suggested licenses:
+  # - BSD (default)
+  # - MIT
+  # - GPLv2
+  # - GPLv3
+  # - Apache
+  # - CC-BY
+  license: license (GPLv2, CC-BY, etc)
+  
+  min_ansible_version: 1.2
+
+  # Optionally specify the branch Galaxy will use when accessing the GitHub
+  # repo for this role. During role install, if no tags are available,
+  # Galaxy will use this branch. During import Galaxy will access files on
+  # this branch. If travis integration is cofigured, only notification for this
+  # branch will be accepted. Otherwise, in all cases, the repo's default branch
+  # (usually master) will be used.
+  #github_branch:
+  
+  platforms:
+  - name: EL
+    versions:
+    - 6
+
+  galaxy_tags: []
+    # List tags for your role here, one per line. A tag is
+    # a keyword that describes and categorizes the role.
+    # Users find roles by searching for tags. Be sure to
+    # remove the '[]' above if you add tags to this list.
+    #
+    # NOTE: A tag is limited to a single word comprised of
+    # alphanumeric characters. Maximum 20 tags per role.
+
+dependencies:
+- { role: opdk-setup-default-settings }
\ No newline at end of file
diff --git a/tasks/4150703-main.yml b/tasks/4150703-main.yml
new file mode 100644
index 0000000..89be8a7
--- /dev/null
+++ b/tasks/4150703-main.yml
@@ -0,0 +1,82 @@
+---
+- name: Get user status
+  uri:
+    url: 'http://{{ local_address }}:{{ ms_ext_mgmt_port }}/v1/users/{{ opdk_user_email }}'
+    user: '{{ admin_user }}'
+    password: '{{ admin_pass }}'
+    body_format: json
+    force_basic_auth: yes
+  register: user_results
+
+- name: User Status Report
+  debug:
+    var: user_results
+
+- name: Create user
+  shell: "{{ create_user }} -P {{ admin_pass }} -u {{ opdk_user_email }} -p {{ opdk_user_pass }} -f {{ first_name }} -l {{ last_name }}"
+  when: not user_results.status == 200
+  register: user_create_results
+
+- name: Create user report
+  debug:
+    var: user_create_results
+
+- name: Get org status
+  uri:
+    url: 'http://{{ local_address }}:{{ ms_ext_mgmt_port }}/v1/organizations/{{ org_name }}'
+    user: '{{ admin_user }}'
+    password: '{{ admin_pass }}'
+    body_format: json
+    force_basic_auth: yes
+  register: org_results
+  ignore_errors: true
+
+- name: Org status report
+  debug:
+    var: org_results
+
+- name: Create an organization
+  shell: "{{ create_org }} -a {{ opdk_user_email }} -o {{ org_name }} -P {{ admin_pass }}"
+  when: not org_results.status == 200
+  register: create_status
+
+- name: Create organization status
+  debug:
+    var: create_status
+
+- name: Create roles
+  shell: "{{ create_roles }} -o {{ org_name }} -P {{ admin_pass }}"
+  when: not org_results.status == 200
+  register: create_role
+
+- name: Create roles status report
+  debug:
+    var: create_role
+
+- name: Get environment status
+  uri:
+    url: 'http://{{ local_address }}:{{ ms_ext_mgmt_port }}/v1/organizations/{{ org_name }}/environments/{{ env_name }}'
+    user: '{{ admin_user }}'
+    password: '{{ admin_pass }}'
+    body_format: json
+    force_basic_auth: yes
+  register: env_results
+  ignore_errors: true
+
+- name: Environment status report
+  debug:
+    var: env_results
+
+- name: Print name of virtual_host_alias
+  debug:
+    msg: "virtual_host_alias: {{ virtual_host_alias }}"
+
+- name: Add an environment
+  shell: "{{ add_env }} -o {{ org_name }} -e {{ env_name }} -P {{ admin_pass }} -A -v {{ virtual_host_name }} -p {{ virtual_host_port }} -a {{ virtual_host_alias }}"
+  when: not env_results.status == 200
+  ignore_errors: true
+  register: add_env_status
+
+- name: Add environment status report
+  debug:
+    var: add_env_status
diff --git a/tasks/4160100-main.yml b/tasks/4160100-main.yml
new file mode 100644
index 0000000..92cd3df
--- /dev/null
+++ b/tasks/4160100-main.yml
@@ -0,0 +1,13 @@
+---
+- name: Obtain apigee-provision status
+  stat:
+    path: '{{ apigee_provision_dir }}'
+  register: apigee_provision_status
+
+- name: Apigee provision installation
+  shell: '{{ apigee_service }} apigee-provision install'
+  when: not apigee_provision_status.stat.exists
+
+- name: Apigee organization setup
+  shell: '{{ apigee_service }} apigee-provision setup-org -f {{ onboarding_config_file_path }}'
+  ignore_errors: yes
diff --git a/tasks/main.yml b/tasks/main.yml
new file mode 100644
index 0000000..fc42982
--- /dev/null
+++ b/tasks/main.yml
@@ -0,0 +1,24 @@
+---
+
+- name: Checking for Management Server Port
+  register: ms_ext_mgmt_port_status
+  ignore_errors: true
+  wait_for:
+    port: '{{ ms_ext_mgmt_port }}'
+    host: '{{ local_address }}'
+    timeout: 1
+
+- name: Management Server Port Status report
+  debug:
+    var: ms_ext_mgmt_port_status
+
+- name: Management server is not running
+  fail:
+    msg: "Management server is not running"
+  when: ms_ext_mgmt_port_status | failed
+
+- include: 4150703-main.yml
+  when: opdk_version | version_compare('4.16.01', '<')
+
+- include: 4160100-main.yml
+  when: opdk_version | version_compare('4.16.01', '>=')
diff --git a/tests/inventory b/tests/inventory
new file mode 100644
index 0000000..d18580b
--- /dev/null
+++ b/tests/inventory
@@ -0,0 +1 @@
+localhost
\ No newline at end of file
diff --git a/tests/test.yml b/tests/test.yml
new file mode 100644
index 0000000..e5be74e
--- /dev/null
+++ b/tests/test.yml
@@ -0,0 +1,5 @@
+---
+- hosts: localhost
+  remote_user: root
+  roles:
+    - opdk-setup-org
\ No newline at end of file
diff --git a/vars/main.yml b/vars/main.yml
new file mode 100644
index 0000000..f54b03c
--- /dev/null
+++ b/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for opdk-setup-org
