{"id":19806007,"url":"https://github.com/cycloidio/cyclosible","last_synced_at":"2025-05-01T07:30:35.145Z","repository":{"id":83786367,"uuid":"45199693","full_name":"cycloidio/cyclosible","owner":"cycloidio","description":null,"archived":true,"fork":false,"pushed_at":"2015-12-23T14:23:42.000Z","size":81,"stargazers_count":8,"open_issues_count":6,"forks_count":3,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-06T10:52:09.800Z","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":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cycloidio.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}},"created_at":"2015-10-29T17:32:28.000Z","updated_at":"2025-03-12T13:20:48.000Z","dependencies_parsed_at":"2023-03-16T04:00:26.707Z","dependency_job_id":null,"html_url":"https://github.com/cycloidio/cyclosible","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycloidio%2Fcyclosible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycloidio%2Fcyclosible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycloidio%2Fcyclosible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycloidio%2Fcyclosible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cycloidio","download_url":"https://codeload.github.com/cycloidio/cyclosible/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251840100,"owners_count":21652276,"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-12T09:06:09.366Z","updated_at":"2025-05-01T07:30:34.865Z","avatar_url":"https://github.com/cycloidio.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Cyclosible\n==========\n\n[![Join the chat at https://gitter.im/cycloidio/cyclosible](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cycloidio/cyclosible?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n[![Build Status](https://travis-ci.org/cycloidio/cyclosible.svg)](https://travis-ci.org/cycloidio/cyclosible)\n[![Coverage Status](https://coveralls.io/repos/cycloidio/cyclosible/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/cycloidio/cyclosible?branch=master)\n[![Stories in Ready](https://badge.waffle.io/cycloidio/cyclosible.png?label=ready\u0026title=Ready)](https://waffle.io/cycloidio/cyclosible)\n\nCyclosible is a project backed by [Cycloid] in order to manage Ansible with a REST API.\n\nThe goal of Cyclosible is to be a lightweight application opensourced as a free alternative to Ansible Tower.\n\nCyclosible is used internally at [Cycloid] to let our customers use their own CI and interact with our deployment stack.\n\nTechnologies used\n-----------------\n\nCyclosible is built upon these technologies:\n* [Django]\n* [Django REST Framework]\n* [Celery]\n* [Redis]\n* [S3]\n\nPrerequisite\n------------\n\n### Install REDIS\n\nTo start with Cyclosible, you will need to install redis. For this we suggest to create a [redis docker container]\n\n### Create Virtual Environment\n\nFirst, install virtualenv:\n```bash\nsudo pip install virtualenv\nsudo pip install virtualenvwrapper\n```\n\nThen, create the virtualenv:\n```bash\nmkvirtualenv cyclosible27 --no-site-packages -p /usr/bin/python2.7\n```\n\nI suggest here to install python 2.7 as ansible does not support python 3 yet.\n\nNow, to work in your virtual environment, you can enable it with:\n```bash\nworkon cyclosible27\n```\n\n### Install Cyclosible\n\nYou will need to clone this repository. Then you will be able to install the requirements:\n```bash\npip install cyclosible\n```\n\nWhen you activate your virtual environment, you should be able to use `cyclosible` script:\n```bash\nwhich cyclosible\n```\n\n### Configure the S3 bucket\n\nS3 bucket is optional if you enable the S3 storage plugin.\n\nYou will need to activate the Website Hosting on your S3 bucket, and apply this permission (where cycloid-cyclosible is the name of your bucket):\n```json\n{\n  \"Version\":\"2012-10-17\",\n  \"Statement\":[{\n    \"Sid\":\"PublicReadGetObject\",\n        \"Effect\":\"Allow\",\n      \"Principal\": \"*\",\n      \"Action\":[\"s3:GetObject\"],\n      \"Resource\":[\"arn:aws:s3:::cycloid-cyclosible/*\"\n      ]\n    }\n  ]\n}\n```\n\nConfigure the application\n-------------------------\n\nBy default, there is some fields pre-configured in the `cyclosible/Cyclosible/settings.py` file.\n\nTo make things easier to configure and to not loose your modifications after an upgrade of the package, you can override these settings providing your own settings file.\n\nFor this, create an environment variable named `CYCLOSIBLE_CONFIG` and point it to your settings file, for example in `/etc/cyclosible/settings.py`.\n\nNow you just have top copy the content from the settings.py to your custom settings.py.\n\nBefore starting the application, we need to create the database. You can also configure the DATABASE settings, by default it will create a SQLite3 database.\nPlease refer to the django website (link is above this parameter) to configure it correctly.\n\nThen, apply the schema:\n```bash\nCYCLOSIBLE_CONFIG=/etc/cyclosible/settings.py cyclosible migrate\n```\n\nIt will populate the database. Then you need to create a superuser:\n```bash\nCYCLOSIBLE_CONFIG=/etc/cyclosible/settings.py cyclosible createsuperuser\n```\n    \nStart the application\n---------------------\n\nThe best way to run the application on production is to use [supervisord].\n\nThere are 3 applications to start :\n\n- This one will start the webserver (DEV mode):\n```bash\nCYCLOSIBLE_CONFIG=/etc/cyclosible/settings.py cyclosible runserver\n```\n\n- This one will start the worker which will run the playbook:\n```bash\nCYCLOSIBLE_CONFIG=/etc/cyclosible/settings.py cyclosible celery worker\n```\n\n- This one will check if there are some tasks ton run on crontabs (actually optional):\n```bash\nCYCLOSIBLE_CONFIG=/etc/cyclosible/settings.py cyclosible celery beat\n```\n\nNow you should be able to connect on the admin interface: `http://\u003cyourip\u003e:8000/admin/`\n\nDevelopment\n-----------\n\nAll unit tests are run with tox:\n```bash\npip install tox\n```\n    \nThen, run tox at the root of the project:\n```bash\ntox\n```\n    \n\n[Cycloid]: http://www.cycloid.io\n[Ansible Tower]: http://www.ansible.com/tower\n[redis docker container]: https://hub.docker.com/_/redis/\n[Django]: https://www.djangoproject.com/\n[Django REST Framework]: http://www.django-rest-framework.org/\n[Celery]: http://www.celeryproject.org/\n[Redis]: http://redis.io/\n[S3]: https://aws.amazon.com/fr/s3/\n[supervisord]: http://supervisord.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycloidio%2Fcyclosible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcycloidio%2Fcyclosible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycloidio%2Fcyclosible/lists"}