{"id":19378925,"url":"https://github.com/linbit/linstor-ansible","last_synced_at":"2025-02-24T16:26:30.919Z","repository":{"id":82827812,"uuid":"226334088","full_name":"LINBIT/linstor-ansible","owner":"LINBIT","description":"Ansible playbook for quickly deploying a LINSTOR storage cluster","archived":false,"fork":false,"pushed_at":"2023-07-13T17:46:06.000Z","size":38,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-13T00:33:49.931Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LINBIT.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":"2019-12-06T13:18:04.000Z","updated_at":"2024-11-23T14:46:38.000Z","dependencies_parsed_at":"2025-01-07T05:51:19.469Z","dependency_job_id":null,"html_url":"https://github.com/LINBIT/linstor-ansible","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/LINBIT%2Flinstor-ansible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Flinstor-ansible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Flinstor-ansible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Flinstor-ansible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LINBIT","download_url":"https://codeload.github.com/LINBIT/linstor-ansible/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240511965,"owners_count":19813385,"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-10T09:07:59.221Z","updated_at":"2025-02-24T16:26:30.906Z","avatar_url":"https://github.com/LINBIT.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LINSTOR Ansible Playbook\n\nBuild a LINSTOR® cluster using Ansible. If you're unfamiliar with LINSTOR,\nplease refer to the\n[Introduction to LINSTOR section](https://linbit.com/drbd-user-guide/linstor-guide-1_0-en/#p-linstor-introduction)\nof the LINSTOR user's guide on https://linbit.com to learn more.\n\nSystem requirements:\n\n  - An account at https://my.linbit.com (contact sales@linbit.com).\n  - Deployment environment must have Ansible `2.7.0+` and `python-netaddr`.\n  - All target systems must have passwordless SSH access.\n  - All hostnames used in the inventory file are resolvable (or use IP addresses).\n  - Target systems are RHEL 7/8/9  or Ubuntu 22.04 (or compatible variants).\n\n# Usage\n\nAdd the target system information into the inventory file named `hosts.ini`.\nFor example:\n```\n[controller]\n192.168.35.12\n\n[satellite]\n192.168.35.[10:11]\n\n[linstor_cluster:children]\ncontroller\nsatellite\n\n[linstor_storage_pool]\n192.168.35.[10:11]\n```\n\nYou can add a `controller` node to the `satellite` node group which will\nresult in the node becoming a `Combined` node in the LINSTOR cluster. A\n`Combined` node will function both as a `controller` and as a `satellite` node.\nAdd nodes to the `linstor_storage_pool` node group to contribute block storage\nto the LINSTOR storage pool created by the playbook.\n\nAlso, before continuing, edit `group_vars/all.yaml` to configure the necessary\nvariables for the playbook. For example:\n```\n---\n# Ansible variables\nansible_user: vagrant\nansible_ssh_private_key_file: ~/.vagrant.d/insecure_private_key\nbecome: yes\n\n# LINSTOR variables\ndrbd_backing_disk: /dev/sdb\ndrbd_replication_network: 192.168.222.0/24\n\n# LINBIT portal variables\nlb_user: \"lbportaluser\"\nlb_pass: \"lbportalpass\"\nlb_con_id: \"1234\"\nlb_clu_id: \"4321\"\n```\n\nThe `drbd_backing_disk` variable should be set to an unused block device that the\nLINSTOR satellite nodes will use if the nodes are also a part of the\n`storage-pool` node group. If you do not have an unused block device, do not add\nthe node to the `linstor_storage_pool` node group, and only a `file-thin`\nstorage-pool will be configured instead. The `drbd_replication_network` is the network,\nin CIDR notation, that will be used by LINSTOR and DRBD. It is strongly recommended\nthat the `drbd_replication_network` be separate from the management network in\nproduction systems to limit network traffic congestion, but it's not a hard requirement.\n\nWhen ready, run the `site.yaml` playbook:\n\n```sh\nansible-playbook site.yaml\n```\n\nIf you don't want to put your LINBIT credentials into the `group_vars/all.yaml`, you\ncan run the playbook like this instead:\n\n```sh\nansible-playbook -e lb_user=\"username\" -e lb_pass=\"password\" -e lb_con_id=\"1234\" -e lb_clu_id=\"1234\" site.yaml\n```\n\nCongratulations! You should now have successfully created a LINSTOR cluster using Ansible.\n# Testing Installation\n\nShell into the controller node, and check that everything is setup:\n\n```sh\nlinstor node list; linstor storage-pool list\n```\nCreate and deploy a resource:\n\n```sh\nlinstor resource-definition create test-res-0\nlinstor volume-definition create test-res-0 100MiB\nlinstor resource create \\\n  $(linstor sp list | head -n4 | tail -n1 | cut -d\"|\" -f3 | sed 's/ //g') \\\n  test-res-0 --storage-pool lvm-thin\nlinstor resource list\n```\nYou should now have a DRBD device provisioned on a node in your cluster that you\ncan use as you would any other block device.\n\n# Reference\n\nFor more information on LINSTOR - such as instructions for Kubernetes,\nOpenStack, Docker, or other integration - refer to\n[LINBIT's LINSTOR documentation](https://linbit.com/drbd-user-guide/linstor-guide-1_0-en/).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinbit%2Flinstor-ansible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinbit%2Flinstor-ansible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinbit%2Flinstor-ansible/lists"}