{"id":15227830,"url":"https://github.com/deric/puppet-beegfs","last_synced_at":"2025-04-10T00:41:46.526Z","repository":{"id":5730125,"uuid":"53786834","full_name":"deric/puppet-beegfs","owner":"deric","description":"Manage BeeGFS parallel system installations.","archived":false,"fork":false,"pushed_at":"2024-07-16T12:01:56.000Z","size":457,"stargazers_count":4,"open_issues_count":2,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T00:41:15.540Z","etag":null,"topics":["beegfs","distributed-file-system","puppet","storage"],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/deric.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"2016-03-13T13:37:33.000Z","updated_at":"2024-07-16T12:02:00.000Z","dependencies_parsed_at":"2022-09-26T20:31:16.050Z","dependency_job_id":"2539dbb3-2767-4a1f-85ee-e836bd533d3a","html_url":"https://github.com/deric/puppet-beegfs","commit_stats":{"total_commits":216,"total_committers":11,"mean_commits":"19.636363636363637","dds":"0.12037037037037035","last_synced_commit":"32d501e4cfffdc35271c559f4e37a63404b778c3"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-beegfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-beegfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-beegfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-beegfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deric","download_url":"https://codeload.github.com/deric/puppet-beegfs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137999,"owners_count":21053775,"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":["beegfs","distributed-file-system","puppet","storage"],"created_at":"2024-09-28T23:06:17.184Z","updated_at":"2025-04-10T00:41:46.511Z","avatar_url":"https://github.com/deric.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# puppet-beegfs\n\n[![Puppet Forge](http://img.shields.io/puppetforge/v/deric/beegfs.svg)](https://forge.puppetlabs.com/deric/beegfs) [![Static \u0026 Spec Tests](https://github.com/deric/puppet-beegfs/actions/workflows/spec.yml/badge.svg)](https://github.com/deric/puppet-beegfs/actions/workflows/spec.yml) [![Puppet Forge Downloads](http://img.shields.io/puppetforge/dt/deric/beegfs.svg)](https://forge.puppetlabs.com/deric/beegfs/scores)\n\n## Upgrade from `deric-beegfs` version `0.4.x` to `0.5.x`\n\n- `beegfs::storage_directory` expects an Array instead of just String\n- parameter `beegfs::major_version` renamed to `beegfs::release`\n- `beegfs::client::client_udp` renamed to `beegfs::client::client_udp_port`\n\n\n## Usage\n\nFirst of all choose which release to use, by defining:\n```yaml\nbeegfs::release: '6'\n```\nvalid values are:\n\n- `'2015.03'`\n- `'6'`\n- `'7'`\n- `'7.1'`\n\nYou'll need one mgmtd server:\n\n```puppet\nclass { 'beegfs::mgmtd': }\n```\nin order to accept new storage and meta servers you have to (at least temporarily) enable `allow_new_servers` and `allow_new_targets`.\n\nAnd probably many storage and meta servers:\n```puppet\nclass { 'beegfs::meta':\n  mgmtd_host =\u003e 192.168.1.1,\n}\nclass { 'beegfs::storage':\n  mgmtd_host =\u003e 192.168.1.1,\n}\n```\nIt's easier to define shared settings for all servers at one place (Hiera, e.g. `default.yaml`):\n\n```\nbeegfs::mgmtd_host: '192.168.1.1'\n```\nso that you don't have to specify `mgmtd_host` for each component.\n\ndefining a mount\n```puppet\nbeegfs::mount{ 'mnt-share':\n  cfg =\u003e '/etc/beegfs/beegfs-client.conf',\n  mnt   =\u003e '/mnt/share',\n  user  =\u003e 'beegfs',\n  group =\u003e 'beegfs',\n}\n```\n\n### Interfaces and networks\n\nFor meta and storage nodes you can specify interfaces for communication. The passed argument must be an array.\n\n```puppet\nclass { 'beegfs::meta':\n  mgmtd_host =\u003e 192.168.1.1,\n  interfaces =\u003e ['eth0', 'ib0'],\n}\nclass { 'beegfs::storage':\n  mgmtd_host =\u003e 192.168.1.1,\n  interfaces =\u003e ['eth0', 'ib0']\n}\n```\n\nIn some cases, interfaces can have multiple ips, and only a subset of them should be used.\nIn this case, the list of allowed subnets can be passed as the networks parameter. It should be an array if specified.\n\n```puppet\nclass { 'beegfs::meta':\n  mgmtd_host =\u003e 192.168.1.1,\n  interfaces =\u003e ['eth0', 'ib0'],\n  networks =\u003e ['192.168.1.0/24'],\n}\n```\n\n### Initialization\n\n#### mgmtd\n\nIf `beegfs::allow_first_run_init` is `true` you may skip this step.\n\n```sh\nbeegfs-setup-mgmtd -p /mnt/myraid1/beegfs-mgmtd\n```\n\n#### meta\n\nIf `beegfs::allow_first_run_init` is `true` you may skip this step.\n\n##### Example 1\n\nInitialize metadata storage directory of first metadata server and set\n\"storage01\" as management daemon host in config file:\n\n```sh\nbeegfs-setup-meta -p /mnt/myraid1/beegfs-meta -s 1 -m storage01\n```\n\n## Hiera support\n\nAll configuration could be specified in Hiera config files. Some settings\nare shared between all components, like:\n\n```yaml\nbeegfs::mgmtd_host: '192.168.1.1'\nbeegfs::mgmtd::allow_new_servers: true\nbeegfs::mgmtd::allow_new_targets: true\nbeegfs::release: 6\n```\n\nversion could be also defined exactly, like:\n```yaml\nbeegfs::version: '2015.03.r9.debian7'\n```\n\nfor module specific setting use correct namespace, e.g.:\n```yaml\nbeegfs::meta::interfaces:\n  - 'eth0'\n```\n\nRecent releases of Linux Kernel might include \"deterministic interfaces naming\" (like `enp0s31f6`) that requires specifying which interface should be BeeGFS instances using:\n\n```yaml\nbeegfs::client::interfaces:\n  - \"%{facts.networking.primary}\"\nbeegfs::meta::interfaces:\n  - \"%{facts.networking.primary}\"\nbeegfs::storage::interfaces:\n  - \"%{facts.networking.primary}\"\n```\n\n## Requirements\n\n * Ruby 2.0 or newer\n * at least Puppet 4.9\n\n## License\n\nApache License, Version 2.0\n\n## Acceptance test\n\nRun specific image using:\n```\nBEAKER_set=debian9-5.5 rake acceptance\n```\ndebug mode:\n```\nBEAKER_debug=true rake acceptance\n```\npreserve Docker container after finising test:\n```\n$ BEAKER_destroy=no rake acceptance\n$ docker exec -it 98aa06308c67 bash\n$ /opt/puppetlabs/bin/puppet apply /tmp/apply_manifest.pp.OveoVG\n```\n\n\n## Rubocop\n\nUpdate rubocop config with given target version:\n```\n mry --target=0.70.0 .rubocop.yml\n ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderic%2Fpuppet-beegfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderic%2Fpuppet-beegfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderic%2Fpuppet-beegfs/lists"}