{"id":15752558,"url":"https://github.com/devigned/ansible-service-fabric-aws","last_synced_at":"2025-07-24T16:19:06.708Z","repository":{"id":145070836,"uuid":"67820850","full_name":"devigned/ansible-service-fabric-aws","owner":"devigned","description":"Ansible provisioned Service Fabric Cluster on AWS","archived":false,"fork":false,"pushed_at":"2016-10-26T15:01:00.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-06T12:13:13.138Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devigned.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-09T17:58:31.000Z","updated_at":"2016-11-14T16:48:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"1ba8d333-d8f7-418b-8ffb-1303a254dd07","html_url":"https://github.com/devigned/ansible-service-fabric-aws","commit_stats":{"total_commits":17,"total_committers":2,"mean_commits":8.5,"dds":0.05882352941176472,"last_synced_commit":"2cb4236c7b58ea4da0be512c5c2be007ea3ddac2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devigned%2Fansible-service-fabric-aws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devigned%2Fansible-service-fabric-aws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devigned%2Fansible-service-fabric-aws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devigned%2Fansible-service-fabric-aws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devigned","download_url":"https://codeload.github.com/devigned/ansible-service-fabric-aws/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246431679,"owners_count":20776265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-04T07:02:56.032Z","updated_at":"2025-03-31T07:27:06.752Z","avatar_url":"https://github.com/devigned.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ansible Playbook to Deploy a Service Fabric Cluster on AWS\nThis project contains the Ansible devops playbooks, templates and files\nto spin up a Service Fabric cluster of any specified size on AWS. The\nconsumer of the playbook can specify the number of machines, the sizes\nof the machines, and the AWS deployment region. By default, the playbook\nuses the following:\n\n```yml\n# extracted from ./site.yml\n\nami_id: ami-a9a8e4c9            # EBS Optimized Ubuntu 16.04\nkey_name: demo-ssh-key          # name of the public key to create (uses ~/.ssh/id_rsa.pub)\naws_region: us-west-1           # the deployment region\naws_tag: service-fabric-demo    # tag used to count instances\ninstance_type: m4.large         # using 2 CPU, 8 GB, 450 Mbps EBS backed\ninstance_count: 5               # number of machines\n```\n\n## Setup for AWS and Ansible\n- [Install Python 2.7 and Pip](https://www.python.org/downloads/)\n- [Install Ansible](http://docs.ansible.com/ansible/intro_installation.html)\n- [Install Boto](https://github.com/boto/boto)\n- [Setup your AWS credentials for Boto](https://github.com/boto/boto#getting-started-with-boto)\n- Clone this repo and change to the root directory of the repo\n- Test boto connectivity with `./ec2.py --list`\n\n## Deploy a Cluster\n- From the root directory of this repo\n- `ansible-playbook site.yml -i ec2.py`\n\n## Using the cluster\n- Log on to the cluster `ssh ubuntu@{cluster ip}`\n- Setup an ssh tunnel to view the dashboard locally `ssh -N -p 22 -C ubuntu@{cluster ip} -L 19080:localhost:19080`\n    - After starting the tunnel, open your local browser to http://localhost:19080\n- To deploy to the cluster\n    - you can setup additional ssh tunnels and work locally\n    - you can open external ports to expose the cluster publicly (by default, the only public port open is 22)\n- Example\n    - `ssh ubuntu@{cluster ip}`\n    - `yo azuresf`\n        - name the app `testapp`\n        - select `Reliable Actor Service - Java`\n        - name the actor `testactor`\n    - `cd testapp`\n    - `gradle`\n    - `azuresfcli config mode arm`\n    - `azuresfcli servicefabric cluster connect http://localhost:19080`\n    - `./install.sh`\n    - Look to your dashboard and you should see your application running in the cluster.\n    - $$$$\n\n## Teardown a Cluster\n- From the root directory of this repo\n- `ansible-playbook terminate.yml -i ec2.py`\n\n## Other Details\nHere are some other details to help out anyone not familiar with Ansible.\n\n### Project Structure\n```\n├── LICENSE\n├── README.md\n├── ec2.ini\n├── ec2.py\n├── roles\n│   ├── common\n│   │   └── tasks\n│   │       └── main.yml\n│   ├── provision-ec2\n│   │   └── tasks\n│   │       └── main.yml\n│   └── service-fabric\n│       ├── tasks\n│       │   └── main.yml\n│       └── templates\n│           └── manifest.xml.j2\n├── site.yml\n└── terminate.yml\n```\n- **site.yml** is the start of all deployment activity. It includes three\n  roles, provision-ec2, common and service-fabric.\n- **Roles**\n    - **provision-ec2:** handles all of the AWS related provisioning\n    - **common:** handles bootstrapping the initial Ubuntu image (adds Python 2.7)\n    - **service-fabric:** installs and builds the SF cluster\n        - **tasks** contains the tasks to be executed during deployment\n        - **templates** contains jinja2 template to be deployed to the cluster\n- **terminate.yml** destroys clusters\n- **ec2.ini** contains boto / ec2 configuration defaults\n- **ec2.py** is an inventory script for pulling remote machine inventory from\n  AWS\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevigned%2Fansible-service-fabric-aws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevigned%2Fansible-service-fabric-aws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevigned%2Fansible-service-fabric-aws/lists"}