{"id":18029365,"url":"https://github.com/morucci/zuul-fedora-rpm","last_synced_at":"2026-02-05T16:31:15.645Z","repository":{"id":142717291,"uuid":"275876348","full_name":"morucci/zuul-fedora-rpm","owner":"morucci","description":"Non official Zuul packaging for Fedora","archived":false,"fork":false,"pushed_at":"2020-07-01T16:55:25.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-08T10:12:26.893Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/morucci.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-29T16:58:49.000Z","updated_at":"2020-07-01T16:55:28.000Z","dependencies_parsed_at":"2024-07-12T08:04:56.863Z","dependency_job_id":null,"html_url":"https://github.com/morucci/zuul-fedora-rpm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/morucci/zuul-fedora-rpm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morucci%2Fzuul-fedora-rpm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morucci%2Fzuul-fedora-rpm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morucci%2Fzuul-fedora-rpm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morucci%2Fzuul-fedora-rpm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/morucci","download_url":"https://codeload.github.com/morucci/zuul-fedora-rpm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morucci%2Fzuul-fedora-rpm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29125814,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T14:05:12.718Z","status":"ssl_error","status_checked_at":"2026-02-05T14:03:53.078Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-10-30T09:08:57.620Z","updated_at":"2026-02-05T16:31:15.629Z","avatar_url":"https://github.com/morucci.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Getting started with Zuul on Fedora\n\n## Upstream documentation\n\nThe upstream documentation is available at: https://zuul-ci.org/docs/zuul/index.html\n\n## Installation\n\nThis section describes the installation process of the minimal set of Zuul components to\nget a working Zuul deployment. Please refer to the upstream documentation for advanced\nsetup.\n\nZuul requires a Web, a Zookeeper and SQL server running. This documentation covers all the step\nto bootstrap Zuul.\n\n### Install and setup Zookeeper\n\nThis process describes the minimal steps to get a Zookeeper service running. You\nshould refer to the Zookeeper documentation to get a production setup if needed.\n\n```\n$ mkdir /tmp/zookeeper \u0026\u0026 cd /tmp/zookeeper\n$ curl -OL https://downloads.apache.org/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz\n$ tar -xvzf apache-zookeeper-3.6.1-bin.tar.gz\n$ cp apache-zookeeper-3.6.1-bin/conf/zoo_sample.cfg apache-zookeeper-3.6.1-bin/conf/zoo.cfg\n$ sudo apache-zookeeper-3.6.1-bin/bin/zkServer.sh start\n```\n\n### Install and setup postgresql\n\nThis process describes the minimal steps to get a postgres service running. You\nshould refer to the postgrres documentation to get a production setup if needed.\n\n```\n$ sudo dnf install -y posgresql python3-psycopg2\n$ su - postgres\n$ psql\n  ALTER USER postgres WITH PASSWORD 'mypassword';\n$ createdb --owner=postgres zuul\n$ exit\n```\n\nUpdate the local access setting:\n\n```\n$ sudo sed -i 's|127.0.0.1/32            ident|127.0.0.1/32            md5|' /var/lib/pgsql/data/pg_hba.conf\n$ sudo systemctl restart posgreql\n```\n\nValidate server connection by running:\n\n```\n$ psql -h 127.0.0.1 -U postgres -W zuul\n```\n\n### Install Zuul components\n\nTo install the packages run:\n\n```\n$ sudo dnf install zuul-scheduler zuul-executor zuul-web zuul-webui\n```\n\n### Update the zuul configuration to define the sql connection\n\nIn /etc/zuul/zuul.conf add the following:\n\n```\n[connection sqlreporter]\ndriver=sql\ndburi=postgresql://postgres:mypassword@127.0.0.1:5432/zuul\n```\n\n### Setup Ansible virtual environment for the Zuul executor\n\nThe Zuul executor is the component in charge of running Zuul Jobs. A Zuul job is\na set of Ansible playbook. The Zuul executor supports multiple version of Ansible.\nZuul provides a tool to manage the Ansible virtual environments. To initialize them\nrun:\n\n```\n$ sudo -u zuul bash -c \"cd \u0026\u0026 zuul-manage-ansible -u -r /var/lib/zuul/ansible-bin\" \n```\n\n### Build the Zuul web UI\n\nThe Zuul web UI is a React application. The Zuul packaging provides the source code of\nthe application. The following process describe how to compile the source to get a\nproduction build:\n\n```\n$ curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo\n$ sudo dnf install yarn\n$ cd /usr/share/zuul-ui/\n$ yarn install\n$ REACT_APP_ZUUL_API='\u003capi_url\u003e' yarn build\n```\n\nReplace \u003capi_url\u003e by the URL where the zuul-web API is listening.\n\n### Start the scheduler and executor\n\nTo do so run:\n\n```\n$ sudo -u zuul bash -c \"ssh-keygen -t rsa -N '' -f /var/lib/zuul/.ssh/id_rsa\"\n$ sudo systemctl start zuul-scheduler\n$ sudo systemctl start zuul-executor\n```\n\nThe services logs are available into /var/log/zuul/zuul.log.\n\n### Setup the web API\n\nInstall Apache:\n\n```\n$ sudo dnf install httpd\n$ setsebool -P httpd_can_network_connect on\n```\n\nThen setup the reverve proxy by adding to /etc/httpd/conf.d/zuul.conf the\nfollowing content:\n\n```\nRewriteEngine on\nRewriteRule ^/api/tenant/(.*)/console-stream ws://localhost:9000/api/tenant/$1/console-stream [P]\nRewriteRule ^/(.*)$ http://localhost:9000/$1 [P]\n```\n\nReload Apache:\n\n```\n$ sudo systemctl relead httpd\n```\n\nFinally start the zuul-web process\n\n```\n$ sudo systemctl start zuul-web\n```\n\nValidate the direct access to the API by running:\n\n```\n$ curl http://localhost:9000/api/tenants\n```\n\nValidate the access to the API via the reverse proxy:\n\n```\n$ curl http://\u003csite_url\u003e/api/tenants\n```\n\n## Run a first Zuul job\n\nIn this section, you'll find the steps to get a first periodic job running.\n\nPlease note that, this is a really basic configuration to ensure the services are working\nas expected. To go further, please refer to the Zuul documentation to learn how to connect\nZuul to Code Review systems such as Github, Gerrit, Pagure. This demo uses the local system\nto run jobs but this has serious limitation and should not be used in production.\nThus Nodepool must be used as the nodes and containers provider for Zuul.\nNodepool supports various cloud providers. Nodepool is packaged into Fedora and here is\nits documentaion: https://zuul-ci.org/docs/nodepool/\n\n### Prepare a Git repository to host the CI configuration\n\nWe need to prepare a local Git repository to host the pipelines and jobs configuration.\n\nFollow the process below:\n\n```\n$ git init /home/fedora/zuul-config\n```\n\nIn /home/fedora/zuul-config/.zuul.yaml add the following content:\n\n```\n- pipeline:\n    name: periodic\n    post-review: true\n    description: Jobs in this queue are triggered every minute.\n    manager: independent\n    precedence: low\n    trigger:\n      timer:\n        - time: '* * * * *'\n    success:\n      sqlreporter:\n    failure:\n      sqlreporter:\n\n- job:\n    name: my-noop\n    description: Minimal working job\n    parent: null\n    run: my-noop.yaml\n\n- project:\n    periodic:\n      jobs:\n        - my-noop\n```\n\nCreate the /home/fedora/zuul-config/my-noop.yaml and add the following content:\n\n```\n---\n- hosts: localhost\n  tasks:\n    - name: List working directory\n      command: ls -al {{ ansible_user_dir }}\n    - name: Sleep 30 seconds\n      wait_for:\n        timeout: 30\n```\n\nThen commit the configuration by running:\n\n```\n$ cd /home/fedora/zuul-config/\n$ git config user.name \"John Doe\"\n$ git config user.email \"john@localhost\"\n$ git add -A .\n$ git commit -m\"Init demo config\"\n```\n\n### Run a Git deamon to serve the config repository\n\n```\n$ sudo dnf install -y python3-dulwich\n$ dulwich web-daemon -l 0.0.0.0 /\n```\n\n### Add the new connection in the Zuul configuration\n\nIn /etc/zuul/zuul.conf add the following:\n\n```\n[connection local_git]\ndriver=git\nbaseurl=http://localhost:8000/home/fedora\npoll_delay=300\n```\n\n### Setup the Zuul tenant configuration file\n\nIn /etc/zuul/main.yaml add the following:\n\n```\n- tenant:\n    name: default\n    source:\n      local_git:\n        config-projects:\n          - zuul-config\n```\n\n### Restart the Zuul services\n\n```\n$ sudo systemctl restart zuul-*\n```\n\n### Verify the job executed periodically\n\nRun the following command to access the builds API endpoint and ensure the\nmy-noop job run as expected every minutes w/o errors.\n\n```\n$ curl http://\u003chost\u003e/api/tenant/default/builds | python -m json.tool\n```\n\nAccess the build page, where you should see the periodic job my-noop runs\n\n```\nhttp://\u003chost\u003e/t/default/builds\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorucci%2Fzuul-fedora-rpm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorucci%2Fzuul-fedora-rpm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorucci%2Fzuul-fedora-rpm/lists"}