Skip to content

Commit

Permalink
blueprint examples updated
Browse files Browse the repository at this point in the history
  • Loading branch information
jakubcierlik committed Apr 14, 2022
1 parent 236fb25 commit 5cde3cc
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 52 deletions.
15 changes: 5 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,12 @@

## Packaging

To build the plugin *wagon* file, use the Cloudify Wagon Builder container image.

```
docker run \
-v /path/to/cloudify-ansible-tower-plugin/:/packaging \
--name cfy-builder \
cloudifyplatform/cloudify-centos-7-wagon-builder
```
The _wagon_ and _plugin.yaml_ files are available in [Releases](https://github.com/cloudify-incubator/cloudify-ansible-tower-plugin/releases).
Use them to upload the plugin into your Cloudify Manager.

## Importing

In Cloudify, go to the *System Resources* menu and click the *Upload* button within the *Plugins* widget. Use the Wagon file (.wgn) from the last section and the plugin.yaml file from this repo.
In Cloudify, go to the *System Resources* menu and click the *Upload* button within the *Plugins* widget. Use the Wagon file (.wgn) and plugin.yaml from the last section.

![Importing a Cloudify plugin](static/screenshots/cfy1.png)

Expand All @@ -23,11 +17,12 @@ In Cloudify, go to the *System Resources* menu and click the *Upload* button wit

Cloudify needs to perform actions as a user within AWX / Ansible Tower. To do this, it needs a *Personal Access Token (PAT)*. Within AWX/Tower, go to the *Users* menu, click on the user you want to authenticate as, click the *TOKENS* top menu button, and click the *+ (plus symbol)*.

Unless you have a specific use case, leave the *APPLICATION* field blank and change the *SCOPE* field to *Write*. The token issued should be used within your Cloudify blueprint.
Unless you have a specific use case, leave the *APPLICATION* field blank and change the *SCOPE* field to *Write*.

![Creating an Ansible Tower token](static/screenshots/awx1.png)

![Displaying an Ansible Tower token](static/screenshots/awx2.png)

![Listing Ansible Tower tokens](static/screenshots/awx3.png)

Then, you can save the Token value in the secret in your Cloudify Manager.
58 changes: 22 additions & 36 deletions examples/blueprint.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,37 @@
tosca_definitions_version: cloudify_dsl_1_3

description: >
Example for using Ansible Tower plugin
Example for using Ansible Tower plugin and create resources
imports:
- /opt/manager/resources/spec/cloudify/5.0.5/types.yaml
- http://cloudify.co/spec/cloudify/6.3.1/types.yaml
- plugin:cloudify-ansible-tower-plugin

inputs:

endpoint:
description: YOUR ANSIBLE TOWER API ENDPOINT
type: string
description: |
Ansible Tower API Endpoint.
Should contain the prefix 'http://' or 'https://'.
default: https://tower.eaas.joscor.dev

access_token:
description: YOUR ANSIBLE TOWER API TOKEN
default: 9qT5WKMDxx8aSvJFMmgNY3eJ0RwO27
type: string
description: Your User's Ansible Tower Token.
default: { get_secret: ansible_tower_token }

endpoint_verify:
type: boolean
description: Enable SSL certificate verification.
default: false

dsl_definitions:

client_config: &client_config
endpoint: { get_input: endpoint }
access_token: { get_input: access_token }
endpoint_verify: { get_input: endpoint_verify }

node_templates:

Expand All @@ -45,13 +55,13 @@ node_templates:
- type: cloudify.ansible_tower.relationships.contained_in_organization
target: org_cloudify

user_jcornutt:
user:
type: cloudify.ansible_tower.nodes.User
properties:
resource_config:
username: jcornutt
first_name: Joshua
last_name: Cornutt
username: cloudify
first_name: John
last_name: Smith
password: 1nS3Cur3P455w0rD
client_config: *client_config
relationships:
Expand All @@ -68,30 +78,7 @@ node_templates:
credential_type: Machine
inputs:
username: ubuntu
ssh_key_data: |
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAu588SannURy58yJ50v66gRNwcEZBWCDZlTcll44j8gE6JtMfL1q5BO7mssAx
caYWnffLYjsCaNvXGyYyw6PKAHGkcIfa4yV+YB2g4RLAwOS4QGxvzyZ2v5E6fdXk3xzRS8Pw6sQZ
QzDRqaJI2Pwv+DaZVDv9ObfZ0ampO5u8onr9SlBSPfh/0XGiFh1ZujqYHVTaHYg+wgbYG2fU+zSD
wHn+OJvW7iPXhCWf/NqQekz6YdYXfDXvPLNZPGEKbFhJBX6+nN2DKPZs37CJRxSN4denqWL7Gkwd
RFArvgMrc/WCUYtxnC5zUXWx0WRIwnFovu2Ty00Gh2955HA42zVGKQIDAQABAoIBAAYahAeRc2j8
GkCCmpv2lXKlgz7jyjRnvSxRgvOPODQjPhUNQTJ1LRev/elKv1EHKi0xZnhnmwh2PmUvtO8QYP3q
tILEqKZDDf1qeVVZGtQrnKLb5DdE9Q/+VXzKfIuVkGl6klfQ0VGSQP/Xu67zZUwZ2psW6IH8LSXY
8xxxUI2ojFpS7ZvjM57gOsX2+Z8Bg74WSbuGeWOG3LG/kOzB/3PwVXmyw1iDFZUecce1cu1D5HxO
+oQWKxAyjs0R2YkAqpBO3IAy/LXn1CW4Zbn5Xkwui0+/L2L06xYdqV2y6b3Dxf9IDYW0YBFHHcZv
S7tATJ8LhfFafeYosPywqvPVdZECgYEA3UzQCidG35xvjzSNTSkMUJnEFIhUaWbN/jtt3oaOJMnP
+UFDT9ouzZuG04VuP+KZ33Lbx/6IicRM1+phEqZi+csupgtiTnbnd7XqjBEyEO49JIv1MmJbZjcZ
94m20pKuJW58aw/s1z/20e9chPxamTrQzfq7itG05htlSiR08ScCgYEA2QqON+aRBkL0bWT0e0dR
fdXu7qvAc515L0uISngkLy5nkXM8EIfl5dycDJFzruLEqoTlUYY9lqg8W+bQle4KA7QjVLf3fo34
ngr4AbqOZyblBQBPoROkGhwC37+NQUOO9MZ5jkMF1vJfxMzEvi9FakBfanPRc/JqeD4JiNR7AC8C
gYA+TOuckCYhuZamiDLncBDpeAB9j0vESI7hbbWmmdbWgIIuN7NNfa0DcS9pyPyau556C4nYKc4i
isLfXjpp17GxhQPi9v17/Xl4eBxJxmWD4q4P5d7nik0U35pN19VCPs0L+KjKMzeH+ZfwziQLxEd1
L9uswVOe5x64USoYz16krQKBgEZq3U+Xt+/PI1ymx4eD0RXBpj67bLpWGi5VFEgNCLhiFuoi+Bbo
8JcOZ3bQbjcMjgBBE+HKawsJVGQA1CYA0DD5bgkbkun1h/dG2cY9z9v5y44+1pcNN03dTrVngZ3u
HGCgUGnupuNhSd8hDKgj0CKz9gEkyI0U1qRihFdnkOyzAoGABoBElYgImBKInuqeZqqMvkfIcK2I
L6QHdB1sZIqFd+h61obZ46kP7UriiKTvAPm5GqQ4HYXWCUwsqkvgiFMasrdQxGgT4aOkvVW08pHJ
eP2CrGJO/yJB9jIpXEfCXe8Mmvkosibau3q7raJiXfgRc1frdSZ/hJJXW1S6tvxGTZc=
-----END RSA PRIVATE KEY-----
ssh_key_data: { get_secret: ssh_key }
client_config: *client_config
relationships:
- type: cloudify.ansible_tower.relationships.contained_in_team
Expand Down Expand Up @@ -127,9 +114,8 @@ node_templates:
type: cloudify.ansible_tower.nodes.Host
properties:
resource_config:
name: !!str 172.18.0.1
description: |
Local docker host
name: '172.18.0.1'
description: Local docker host
client_config: *client_config
relationships:
- type: cloudify.ansible_tower.relationships.contained_in_inventory
Expand Down
22 changes: 16 additions & 6 deletions examples/existing_template.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,37 @@
tosca_definitions_version: cloudify_dsl_1_3

description: >
Example for using Ansible Tower plugin
Example for using Ansible Tower plugin using existing resources
imports:
- /opt/manager/resources/spec/cloudify/5.0.5/types.yaml
- http://cloudify.co/spec/cloudify/6.3.1/types.yaml
- plugin:cloudify-ansible-tower-plugin

inputs:

endpoint:
description: YOUR ANSIBLE TOWER API ENDPOINT
type: string
description: |
Ansible Tower API Endpoint.
Should contain the prefix 'http://' or 'https://'.
default: https://tower.eaas.joscor.dev

access_token:
description: YOUR ANSIBLE TOWER API TOKEN
default: 9qT5WKMDxx8aSvJFMmgNY3eJ0RwO27
type: string
description: Your User's Ansible Tower Token.
default: { get_secret: ansible_tower_token }

endpoint_verify:
type: boolean
description: Enable SSL certificate verification.
default: false

dsl_definitions:

client_config: &client_config
endpoint: { get_input: endpoint }
access_token: { get_input: access_token }
endpoint_verify: { get_input: endpoint_verify }

node_templates:

Expand All @@ -38,4 +48,4 @@ node_templates:
client_config: *client_config
relationships:
- type: cloudify.ansible_tower.relationships.job_contained_in_job_template
target: job_template_example
target: job_template_example

0 comments on commit 5cde3cc

Please sign in to comment.