{"id":20155286,"url":"https://github.com/redhat-cop/infra.osbuild","last_synced_at":"2025-04-09T22:03:49.938Z","repository":{"id":37498682,"uuid":"344618157","full_name":"redhat-cop/infra.osbuild","owner":"redhat-cop","description":"Ansible Collection for management of ostree composer","archived":false,"fork":false,"pushed_at":"2025-04-08T16:01:25.000Z","size":787,"stargazers_count":36,"open_issues_count":15,"forks_count":42,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-09T22:03:35.314Z","etag":null,"topics":["validated-content"],"latest_commit_sha":null,"homepage":"","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/redhat-cop.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-03-04T21:46:40.000Z","updated_at":"2025-04-08T16:01:24.000Z","dependencies_parsed_at":"2023-10-05T02:59:30.021Z","dependency_job_id":"35f6d195-66a5-48a7-a84c-e5c5271a6d3c","html_url":"https://github.com/redhat-cop/infra.osbuild","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/redhat-cop%2Finfra.osbuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-cop%2Finfra.osbuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-cop%2Finfra.osbuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-cop%2Finfra.osbuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redhat-cop","download_url":"https://codeload.github.com/redhat-cop/infra.osbuild/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119297,"owners_count":21050755,"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":["validated-content"],"created_at":"2024-11-13T23:31:19.804Z","updated_at":"2025-04-09T22:03:49.923Z","avatar_url":"https://github.com/redhat-cop.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Osbuild Composer Ansible Collection\n\n[![GitHub Super-Linter](https://github.com/redhat-cop/infra.osbuild/workflows/Lint%20Code%20Base/badge.svg)](https://github.com/marketplace/actions/super-linter)[![Codecov](https://img.shields.io/codecov/c/github/redhat-cop/infra.osbuild)](https://codecov.io/gh/redhat-cop/infra.osbuild)[![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7460/badge)](https://bestpractices.coreinfrastructure.org/projects/7460)[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/redhat-cop/infra.osbuild/badge)](https://api.securityscorecards.dev/projects/github.com/redhat-cop/infra.osbuild)\n\n[Ansible Collection](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html)\nfor management of [osbuild composer](https://www.osbuild.org/documentation/#composer)\nto build [rpm-ostree](https://rpm-ostree.readthedocs.io/en/latest/) based\nimages for Fedora, Red Hat Enterprise Linux, and Centos Stream.\nThis collection has roles to build an osbuild server, an apache httpd server\nto host images, and a role to build installer images and rpm-ostree updates.\n\n## Installing\n\nTo install this collection and its dependencies, you will need to use the\n[Ansible](https://github.com/ansible/ansible) `ansible-galaxy` command:\n\n```shell\nansible-galaxy collection install infra.osbuild\n```\n\n## How to use\n\nYou will need a RHEL, Centos Stream, or Fedora system that you can connect to\nremotely via `ssh`, and a playbook to call the desired roles to result in the\ndesired functionality. Each role has it's own documentation specific to its\nprovided automation.\n\nTo use the example playbooks provided in this repository, please create an\ninventory file that only has the osbuild build server(s) listed in them as these\nexample playbooks use the `all` Ansible [group](https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html#inventory-basics-formats-hosts-and-groups)\nas the [host patten](https://docs.ansible.com/ansible/latest/inventory_guide/intro_patterns.html).\n\n### Configure Osbuild Builder\n\n```shell\nansible-playbook playbooks/osbuild_setup_server.yml\n```\n\n### Build an Image\n\n```shell\nansible-playbook playbooks/osbuild_builder.yml\n```\n\nYou can specify what kind of build you prefer with the variable buidler_compose_type.\n\nCurrent supported and tested build types are:\n\n- edge-commit\n- edge-container\n- edge-installer\n- edge-simplified-installer\n- edge-raw-image\n- iot-commit (fedora only)\n- iot-container (fedora only)\n- iot-installer (fedora only)\n- iot-raw-image (fedora only)\n\nExample:\n\n```shell\nansible-playbook playbooks/osbuild_builder.yml -e builder_compose_type=edge-installer\n```\n\n### Image Hosting\n\nImages are hosted via apache http server that is setup using the setup_server playbook.\nThe images are located at this path on the osbuild server: `/var/www/html/\u003cblueprint_name\u003e/images`.\nInside the image directory will be version subdirectories for each iso built.\n\n### Kickstart Hosting\n\nImage kickstart files are also hosted that can be used as a boot option\nvia http on the osbuild server. The path is `http://\u003cip_addr\u003e/\u003cblueprint_name\u003e/kickstart.ks`\n\n### Auditing versions\n\nYou can run `rpm-ostree status` to see what specific version the system is using.\n\nHere is a sample output:\n\n```\nDeployments:\n* edge:rhel/8/x86_64/edge\n    Version: 0.0.1 (2023-04-07T19:40:08Z)\n    Commit: 7d3461f2fce7572fcdc9b3e8f75677bcdf96afed1ff5a3953f81852aad51f78d\n```\n\n## Supported Versions of Ansible\n\n\u003c!--start requires_ansible--\u003e\n\n## Ansible version compatibility\n\nThis collection has been tested against following Ansible versions: **\u003e=2.12**.\n\nPlugins and modules within a collection may be tested with only specific\nAnsible versions.  A collection may contain metadata that identifies these versions.\nPEP440 is the schema used to describe the versions of Ansible.\n\n\u003c!--end requires_ansible--\u003e\n\n## Tested with Ansible\n\n- ansible-core 2.14 (devel)\n- ansible-core 2.13 (stable)\n- ansible-core 2.12 (stable)\n\n## Included Content\nRoles:\n- builder\n- populate_aap\n- setup_server\n- system_info\n- update_system\n\nModules:\n- create_blueprint\n- export_compose\n- get_all_finished_images\n- inject_ks\n- list_blueprint\n- repository\n- rhsm_repo_info\n- start_compose\n- wait_compose\n\n## Code of Conduct\n\nPlease see the official [Ansible Community Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).\n\n## Licensing\n\n[GNU General Public License v3.0 or later](https://github.com/redhat-cop/infra.osbuild/blob/main/LICENSE)\n\n## Contributing to this collection\n\nWe welcome community contributions to this collection. See [Contributing to Ansible-maintained collections](https://docs.ansible.com/ansible/devel/community/contributing_maintained_collections.html#contributing-maintained-collections) for complete details.\n\n* [Issues](https://github.com/redhat-cop/infra.osbuild/issues)\n* [Pull Requests](https://github.com/redhat-cop/infra.osbuild/pulls)\n* [Ansible Community Guide](https://docs.ansible.com/ansible/latest/community/index.html)\n\n## Testing policy\n\nIt's required for new or existing features to have tests for positive and negative scenarios.\nThe tests are executed by `ansible-test` and those run in the CI.\n\n### Units\n```\nansible-test units --docker --python $PYTHON_VERSION $TEST_FILE_PATH\n```\n\n### Integration\n```\nansible-test integration --remote rhel/$RHEL_VERSION $IMAGE_TYPE\n```\n## Known issues\n- rpm-ostree may crash when trying to run the `rpm-ostree upgrade --check` command. This is caused by an open issue in rpm-ostee found here: https://github.com/coreos/rpm-ostree/issues/4280\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-cop%2Finfra.osbuild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredhat-cop%2Finfra.osbuild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-cop%2Finfra.osbuild/lists"}