{"id":20859140,"url":"https://github.com/daemonite/ansible-roles","last_synced_at":"2025-08-28T16:56:31.779Z","repository":{"id":27519936,"uuid":"31000820","full_name":"Daemonite/ansible-roles","owner":"Daemonite","description":"Daemonite dev-ops ansible roles","archived":false,"fork":false,"pushed_at":"2015-11-16T03:56:23.000Z","size":222,"stargazers_count":5,"open_issues_count":2,"forks_count":4,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-01-19T07:25:18.441Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"ColdFusion","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Daemonite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-19T04:12:54.000Z","updated_at":"2024-09-15T07:30:57.000Z","dependencies_parsed_at":"2022-09-02T09:12:26.614Z","dependency_job_id":null,"html_url":"https://github.com/Daemonite/ansible-roles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daemonite%2Fansible-roles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daemonite%2Fansible-roles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daemonite%2Fansible-roles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daemonite%2Fansible-roles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Daemonite","download_url":"https://codeload.github.com/Daemonite/ansible-roles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243230090,"owners_count":20257644,"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-11-18T04:48:46.870Z","updated_at":"2025-03-12T14:15:18.009Z","avatar_url":"https://github.com/Daemonite.png","language":"ColdFusion","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is a re-usable [Ansible] playbook and roles for setting up FarCry servers.\nIt is intended to work for both local Vagrant instances and production servers, \nfor example in AWS. Some of the design goals of this provisioning script are\nthat it:\n\n* can be used to set up any FarCry project\n* all customisations are in the form of inventory variables, and that \n  consequently, it\n* does not need to be modified - it can be sub-moduled into a \"super-project\"\n  that provides project specific settings\n\n## Usage\n\nCreate a container project to contain the project specific settings. This \nproject is also a good place to put a Vagrantfile if appropriate. You should \nalso put Ansible [inventory files] there if you're using them. You _can_ use \nthis playbook without one.\n\n### Settings\n\nAdd a `group_vars` directory to the container project. Create Ansible \n[variable files] here to hold the playbook settings. Common settings, like the\nproject repository should go in `group_vars/webservers`. For example:\n\n    ---\n      farcry_repository: git@github.com:farcrycore/project-barebones.git\n\nEnvironment specific settings should go into files named for the environment.\nExamples of environments we use are `vagrant`, `stage` and `production`. The\nsettings in these files override the settings in the `webservers` file. For\nexample:\n\n    ---\n      domains: [ \"barebones.stage.someplace.online.com\", \"1.2.3.4\" ]\n      nginx_sendfile: \"off\"\n      application_environment: stage\n\nYou can see what variables each role uses by looking through the \n`defaults/main.yml` in each one. But there are some other important settings\nthat turn a whole role off. These settings are named `role_name`, and are \nsimple to use:\n\n    ---\n      role_awscli: no\n\n### Running\n\nYou can run this playbook against a remote machine from your local computer,\nor directly on the server being updated.\n\n#### From a Local Machine\n\nYou can only run the playbook from a local machine if you have \n[installed Ansible]. At the moment that means Linux and Mac only. Make sure you\nalso have this repository and your container project checked out on the machine.\n\nYou also need to set up an [inventory file][inventory files] like this in your\ncontainer project:\n\n    [stage]\n    1.2.3.4 ansible_ssh_user=ubuntu ansible_ssh_private_key_file=aws-key.pem application_environment=prod\n    \n    [webservers]\n    stage\n\nYour inventory can contain as many environments as you like, and even other \nservers. You would just need to target your updates using [patterns]. \n\nRun this command in the shell:\n\n    ansible-playbook -i /path-to-container-project/your_inventory_file /path-to-this-project/webserver.yml\n\n#### On the Server\n\nFirst make sure you have both this playbook repository and your container \nproject checked out on the server. Then run this command in the shell:\n\n    /path-to-this-project/ansible-run.sh --playbook /path-to-this-project/webserver.yml --inventory /path-to-container-project/inventory_temp --group webservers --environment [environment name]\n\nA couple of things to notice here:\n\n* the playbook is passed in, even though it comes with this project - this\n  will make it easy for you to use your own playbooks, and for us to add extra\n  playbooks in the future\n* the command specifies a temporary inventory with a group and environment\n  argument - you can also create your own inventory files and use those, \n  leaving out the group and environment variables\n\n[Vagrant]: http://docs.ansible.com/index.html\n[submodules]: http://git-scm.com/book/en/v2/Git-Tools-Submodules\n[inventory files]: http://docs.ansible.com/intro_inventory.html\n[variable files]: http://docs.ansible.com/playbooks_variables.html#variable-file-separation\n[installed Ansible]: http://docs.ansible.com/intro_installation.html\n[patterns]: http://docs.ansible.com/intro_patterns.html","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaemonite%2Fansible-roles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaemonite%2Fansible-roles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaemonite%2Fansible-roles/lists"}