{"id":21357827,"url":"https://github.com/rcbops/cephaio","last_synced_at":"2025-06-22T13:07:50.238Z","repository":{"id":52875296,"uuid":"94816453","full_name":"rcbops/CephAIO","owner":"rcbops","description":"Creates an AIO for ceph using LXC containers for Rackspace Public Cloud","archived":false,"fork":false,"pushed_at":"2021-04-21T15:26:49.000Z","size":29,"stargazers_count":3,"open_issues_count":0,"forks_count":6,"subscribers_count":63,"default_branch":"master","last_synced_at":"2025-04-07T02:51:13.667Z","etag":null,"topics":["aio","ceph","lxc-containers"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/rcbops.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":"2017-06-19T20:07:44.000Z","updated_at":"2024-03-24T22:29:37.000Z","dependencies_parsed_at":"2022-08-23T11:40:14.752Z","dependency_job_id":null,"html_url":"https://github.com/rcbops/CephAIO","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rcbops/CephAIO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2FCephAIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2FCephAIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2FCephAIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2FCephAIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rcbops","download_url":"https://codeload.github.com/rcbops/CephAIO/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2FCephAIO/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261296912,"owners_count":23137218,"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":["aio","ceph","lxc-containers"],"created_at":"2024-11-22T05:12:33.620Z","updated_at":"2025-06-22T13:07:45.227Z","avatar_url":"https://github.com/rcbops.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CephAIO\n\nRequires: Ubuntu 16.04 and Ansible 2.3.0 or higher\n\nCreates an AIO for ceph using LXC containers\n\nThe goal of this project was to create an all in one enviroment of ceph that resembled what a production ceph cluster may look like. Each container is treated as a \"server\". \n\n```\n-------------------------------------------------------------------\n| Container |    IP     |                  Type                   |\n-------------------------------------------------------------------\n| cephadmin | 10.0.3.51 | Deployment Host, ceph monitoring host   |\n| cephmon   | 10.0.3.52 | ceph monitoring host                    |\n| cephosd1  | 10.0.3.53 | ceph osd host                           |\n| cephosd2  | 10.0.3.54 | ceph osd host                           |\n| cephosd3  | 10.0.3.55 | ceph osd host                           |\n| cephrgw   | 10.0.3.56 | ceph rados gateway host                 |\n-------------------------------------------------------------------\n```\n\n\nKnown to Work on:\n\n```\n  Rackspace Public Cloud\n    - 15 GB Compute v1   \n    - Ubuntu 16.04 LTS (Xenial Xerus) (PVHVM)  \n    - 75 GB Standard SATA block device:\n        * unmounted\n        * unformatted\n        * listed in AIO_user_config (defauolt: /dev/xvdb)\n```    \n\n### Boot Strap the Host\nUse **bootstrap.sh** to stage the host:\n\nAdd ansible repo and run update package lists\n```\nsudo apt-add-repository ppa:ansible/ansible\nsudo apt-get update\n```\nInstall ansible \n```\nsudo apt-get install -y ansible\n```\nCreate a passwordless ssh-key and copy the key to itself\n```\nsu - $USER -c \"echo |ssh-keygen -t rsa\"\ncat /root/.ssh/id_rsa.pub \u003e\u003e /root/.ssh/authorized_keys\n```\nDisable password entry\n```\nsed -i '/PasswordAuthentication yes/c\\PasswordAuthentication no' /etc/ssh/sshd_config\n```\n\n### To Create the CephAIO\n\n```\ncd CephAIO\nbash bootstrap.sh\nansible-playbook -i inventory build.yml\n```\n\n### To Teardown\n\n` ansible-playbook -i inventory teardown.yml `\n\nAfter using the teardown playbook, ensure that the ceph disk has been completely wiped. Ceph leaves some residual data that interferes with future deployments. The teardown playbook currently uses ` shred ` to perform the data wipe (this takes awhile), but I am pretty sure that removing the block device and adding a new one would accomplish the same end result.\n\n### Clean Up\n\n` ansible-playbook -i inventory cleanup.yml `\n\nIf the containers and drives are created but the installation of ceph fails then ` cleanup.yml ` will stop and destory the containers then remove the 3 partitions from the external drive and then run the ' shred ` command.  This provides the ability to reset the host back to a clean state if an error installing ceph happens.\n\n### Tests\n\nThe directory  **tests** contains information on how to test the success of some installed components.  \n\nTO DO: \n\n- Add variable to control the number of osds deployed\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcbops%2Fcephaio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcbops%2Fcephaio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcbops%2Fcephaio/lists"}