{"id":21357743,"url":"https://github.com/rcbops/rpc-ceph","last_synced_at":"2025-08-20T12:44:03.299Z","repository":{"id":46084298,"uuid":"102869218","full_name":"rcbops/rpc-ceph","owner":"rcbops","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-27T15:34:09.000Z","size":668,"stargazers_count":2,"open_issues_count":25,"forks_count":14,"subscribers_count":52,"default_branch":"master","last_synced_at":"2024-04-14T15:54:45.533Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rcbops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-08T14:19:04.000Z","updated_at":"2019-10-21T17:51:51.000Z","dependencies_parsed_at":"2023-01-31T04:16:14.492Z","dependency_job_id":null,"html_url":"https://github.com/rcbops/rpc-ceph","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2Frpc-ceph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2Frpc-ceph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2Frpc-ceph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2Frpc-ceph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rcbops","download_url":"https://codeload.github.com/rcbops/rpc-ceph/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225844817,"owners_count":17533161,"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-22T05:11:13.162Z","updated_at":"2024-11-22T05:11:14.005Z","avatar_url":"https://github.com/rcbops.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Decom Note:\n\nrpc-ceph is no longer being developed or tested.  Please use the\nupstream ceph-ansible playbooks for any future deployments. \n\n# rpc-ceph and ceph-ansible\n\n``rpc-ceph`` deploys Ceph as an RPC stand-alone platform in a uniform,\nmanaged, and tested way to ensure version consistency and testing.\n\nBy adding automated tests, ``rpc-ceph`` provides a way to manage tested\nversions of ``ceph-ansible`` used in RPC deployments.\n\n## Current versions of ceph-ansible \u0026 Ansible\n\n### **ceph-ansible version:** v3.1.12\n\n### **Ansible version:** 2.4.4.0\n\n## What is rpc-ceph?\n\n``rpc-ceph`` is a thin wrapper around the ``ceph-ansible`` project.\n``rpc-ceph`` manages the versions of ansible and ``ceph-ansible``\nby providing:\n\n * RPC integration testing (MaaS/Logging and WIP-OpenStack).\n * Tested and versioned ``ceph-ansible`` and Ceph releases.\n * Default variables (still WIP) for base installs.\n * Standarized deployments.\n * Default playbooks for integration.\n * Benchmarking tools using ``fio``.\n\nDeploying ``rpc-ceph`` uses ``boostrap.sh``, ``ceph-ansible``, default\n``group_vars``, and a pre-created playbook.\n\n**NOTE:** Anything that can be configured with ``ceph-ansible`` is configurable with\n``rpc-ceph``.\n\n## Deploying Ceph for multi-node and production environments\n\n### Architecture\n\nWe do not recommend or use containers for ``rpc-ceph`` production deployments.\nContainers are setup and used as part of the ``run_tests.sh`` (AIO) testing\nstrategy only. The default playbooks are not set up to build containers or\nconfigure any of the required container specific roles.\n\nThe inventory should consist of the following:\n\n * 1-3+ mons hosts (perferably 3 or more), and an uneven number of them.\n * 1-3+ mgrs hosts (perferably 3 or more) - Ideally on the mon hosts\n   (Since the Luminous release this is required).\n * 3+ osds hosts with storage drives.\n * 1+ repo_servers hosts to serve as apt repo servers for ceph version pinning.\n * OPTIONAL: 1-3+ rgws hosts - these will be load balanced.\n * ``rsyslog_all`` host, pointing to an existing or new rsyslog logging server.\n * OPTIONAL:``benchmark_hosts`` - the host on which to run benchmarking\n   (Read ``benchmark/README.md`` for more).\n\n### Configuring your deployment host\n\n1. Configure the following inventory:\n\n   * ``ansible_host`` var for each host.\n   * Devices, ``dedicated_devices`` for osd hosts.\n\n2. Configure a variables file including the following ``ceph-ansible`` vars:\n\n   * ``monitor_interface``\n   * ``public_network``\n   * ``cluster_network``\n   * ``osd_scenario``\n   * ``repo_server_interface``\n   * Any other ``ceph-ansible`` settings you want to configure.\n\n3. Set any override vars in playbooks/group_vars/host_group/overrides.yml, this allows:\n\n   * Defaults to remain, but be overriden if required (overrides.yml will take precedence).\n   * Git will ignore the overrides.yml file, so the repo can be updated without clearing out all deploy specific vars.\n\n4. Override any variables from ``ceph.conf`` using ``ceph_conf_overrides_extra`` or ``ceph_conf_overrides_\u003cgroup\u003e_extra``:\n\n   * This allows the default ``group_vars`` to remain in place, and means you do not have to respecify any vars you aren't setting.\n   * The ``ceph_conf_overrides_\u003cgroup\u003e_extra`` var will override only vars for only the hosts in that group, with currently supported groups:\n     * ceph_conf_overrides_rgw_extra\n     * ceph_conf_overrides_mon_extra\n     * ceph_conf_overrides_mgr_extra\n     * ceph_conf_overrides_osd_extra\n   * The overrides will merge with the existing settings and take precedence but not squash them.\n\n5. Run the ``bootstrap-ansible.sh`` inside the scripts directory:\n\n   ```bash\n   ./scripts/bootstrap-ansible.sh\n   ```\n\n6. This configures ansible at a pre-tested version, creates a ``ceph-ansible``\n   binary that points to the appropriate ansible-playbook binary, and clones the\n   required role repositories:\n\n   * ``ceph-ansible``\n   * ``rsyslog_client``\n   * ``openstack-ansible-plugins`` (``ceph-ansible`` uses the config template plugin from here).\n   * ``haproxy_server``\n   * ``rsyslog_server``\n\n7. Run the ``ceph-ansible`` playbook from the playbooks directory:\n\n   ```bash\n   ceph-ansible-playbook -i \u003clink to your inventory file\u003e playbooks/add-repo.yml -e @\u003clink to your vars file\u003e\n   ceph-ansible-playbook -i \u003clink to your inventory file\u003e playbooks/deploy-ceph.yml -e @\u003clink to your vars file\u003e\n   ```\n\n7. Run any additional playbooks from the playbook directory:\n\n   * ``ceph-setup-logging.yml``will setup rsyslog client, ensure you have the appropriate rsyslog server setup, or other log shipping location, refer to: https://docs.openstack.org/openstack-ansible-rsyslog_client/latest/ for more details\n   * ``ceph-keystone-rgw.yml`` will setup required keystone users and endpoints for Ceph.\n   * ``ceph-rgw-haproxy.yml`` will setup the HAProxy VIP for Ceph Rados GW. Ensure you specify ``haproxy_all`` group in your inventory with the HAProxy hosts.\n   * ``ceph-rsyslog-server.yml`` will setup rsyslog server on the ``rsyslog_all`` hosts specified. **NB** If there is already an existing rsyslog server that you are connecting into, you should not run this.\n\nYour deployment should be successful.\n\n**NOTE:** If there are any errors, troubleshoot as a standard ``ceph-ansible`` deployment.\n\n## Deploying Ceph as an AIO\n\n### Virtual Machine requirements for AIO\n\n * RAX Public Cloud general-8 (or equivalent) using:\n   * Ubuntu 16.04 (xenial)\n   * CentOS7\n\n### To run an AIO build\n\nFor MaaS integration, perform the following export commands.\nOtherwise just use ``./run_tests.sh`` to build the AIO.\n\n```bash\nexport PUBCLOUD_USERNAME=\u003cusername\u003e\nexport PUBCLOUD_API_KEY=\u003capi_key\u003e\n```\n\n### AIO Scenarios\n\nTo run an AIO scenario for Ceph you can run the following export on a general1-8\nor perf2-15 flavor instance, unless otherwise noted:\n#export RE_JOB_SCENARIO=\"name of scenario from below\"\n\n**build_releasenotes**\nThis will build the project releae notes  using sphinx and place it in\nthe directory `rpc-ceph/release/build/`  \n\n**functional**:\nThis is a base AIO for Ceph, includes MaaS testing, this runs on each\ncommit, with the following components:\n\n* 2 x rgw hosts\n* 3 x osd hosts\n* 3 x mon hosts\n* 3 x mgr hosts\n* 1 x rsyslog server\n* HAproxy configured on localhost\n\nThis job does not run the benchmarking playbooks.\n\n**bluestore**:\nThis is the same as the functional job but runs using bluestore, and\n3 collocated OSD devices per osd host.\n\n**rpco_newton**:\nAn RPC-O newton integration test, that will deploy an RPC-O AIO, and\nintegrate it with Ceph, followed by Tempest tests. This runs daily, as it takes\na long time to build.\n\n* RPC-O AIO @ newton\n  * Keystone\n  * Glance\n  * Cinder\n  * Nova\n  * Neutron\n  * Tempest\n* 2 x rgw hosts\n* 3 x osd hosts\n* 3 x mon hosts\n* 3 x mgr hosts\n\nNB: This requires a perf2-15 instance.\n\n**rpco_pike**\nThis is the same as the rpco_newton job but built against the pike branch\nof RPC-O.\n\n**rpco_queens**\nThis is the same as the rpco_newton and rpco-pike jobs but built against the \nqueens branch of RPC-O.\n\n**rpco_rocky**\nThis is the same as the rpco_newton and rpco-pike jobs but built against the \nrocky branch of RPC-O.\n\n**keystone_rgw**:\nA basic keystone integration test, that will run on each commit.\nUtilizing the swift client to ensure Keystone integration is working.\n\n* Keystone deployed from OpenStack-Ansible role\n* 2 x rgw hosts\n* 3 x osd hosts\n* 3 x mon hosts\n* 3 x mgr hosts\n\nAdditionally this test runs the FIO and RGW benchmarking playbooks to ensure\nthey work, but does not run the MaaS playbooks.\n\n### Currently not supported for AIO\n\n* Trusty deployments - due to changes in losetup Trusty will not work with\n  the current method.\n* Different Ceph versions.\n* Upgrade testing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcbops%2Frpc-ceph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcbops%2Frpc-ceph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcbops%2Frpc-ceph/lists"}