{"id":14984461,"url":"https://github.com/idealista/airflow-role","last_synced_at":"2025-10-25T00:34:37.531Z","repository":{"id":22841578,"uuid":"97455535","full_name":"idealista/airflow-role","owner":"idealista","description":"Ansible role to install Apache Airflow","archived":false,"fork":false,"pushed_at":"2025-02-27T16:45:56.000Z","size":309,"stargazers_count":81,"open_issues_count":3,"forks_count":53,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-03-29T05:06:56.188Z","etag":null,"topics":["airflow","airflow-role","ansible","ansible-role","apache-airflow","debian"],"latest_commit_sha":null,"homepage":"","language":"YAML","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/idealista.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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":"2017-07-17T08:53:18.000Z","updated_at":"2025-03-05T20:33:19.000Z","dependencies_parsed_at":"2025-02-25T12:29:17.404Z","dependency_job_id":"c22111c5-2dd2-4b7d-971e-47c2bf8a67c6","html_url":"https://github.com/idealista/airflow-role","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idealista%2Fairflow-role","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idealista%2Fairflow-role/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idealista%2Fairflow-role/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/idealista%2Fairflow-role/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/idealista","download_url":"https://codeload.github.com/idealista/airflow-role/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294536,"owners_count":20915340,"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":["airflow","airflow-role","ansible","ansible-role","apache-airflow","debian"],"created_at":"2024-09-24T14:09:06.023Z","updated_at":"2025-10-25T00:34:37.462Z","avatar_url":"https://github.com/idealista.png","language":"YAML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Apache Airflow Ansible role\n\n![GitHub release (latest by date)](https://img.shields.io/github/v/release/idealista/airflow-role?color=%23B62682) [![Ansible Galaxy](https://img.shields.io/badge/galaxy-idealista.clickhouse_role-B62682.svg)](https://galaxy.ansible.com/idealista/clickhouse_role) [![Build Status](https://travis-ci.org/idealista/airflow-role.png)](https://travis-ci.org/idealista/airflow-role)\n\n![Logo](https://raw.githubusercontent.com/idealista/airflow-role/master/logo.gif)\n\nThis ansible role installs a Apache Airflow server in a Debian/Ubuntu environment.\n\n- [Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites-ballot_box_with_check)\n  - [Installing](#installing-inbox_tray )\n- [Usage](#usage-runner)\n- [Testing](#testing-test_tube)\n- [Built With](#built-with-building_construction)\n- [Versioning](#versioning-card_file_box)\n- [Authors](#authors-superhero)\n- [License](#license-spiral_notepad)\n- [Contributing](#contributing-construction_worker)\n\n## Getting Started\n\nThese instructions will get you a copy of the role for your ansible playbook. Once launched, it will install [Apache Airflow](https://airflow.apache.org/) in a Debian or Ubuntu system.\n\n### Prerequisites :ballot_box_with_check:\n\nAnsible \u003e= 2.9.9 version installed (Tested with 2.18).\nInventory destination should be a Debian (preferable Debian \u003e= 10 Buster ) or Ubuntu environment.\n\nℹ️ This role should work with older versions of Debian but you need to know that due to Airflow minimum requirements you should check that 🐍 Python 3.8 (or higher) is installed before (👉 See: [Airflow prerequisites](https://airflow.apache.org/docs/apache-airflow/stable/installation/prerequisites.html)).\n\nℹ️ By default this role use the predefined installation of Python that comes with the distro.\n\nFor testing purposes, [Molecule](https://molecule.readthedocs.io/) with [Docker](https://www.docker.com/) as driver.\n\n### Installing :inbox_tray:\n\nCreate or add to your roles dependency file (e.g requirements.yml) from GitHub:\n\n```yml\n- src: http://github.com/idealista/airflow-role.git\n  scm: git\n  version: 3.0.0\n  name: airflow\n```\n\nor using [Ansible Galaxy](https://galaxy.ansible.com/idealista/airflow-role/) as origin if you prefer:\n\n```yml\n- src: idealista.airflow_role\n  version: 3.0.0\n  name: airflow\n```\n\nInstall the role with ansible-galaxy command:\n\n```shell\nansible-galaxy install -p roles -r requirements.yml -f\n```\n\nUse in a playbook:\n\n```yml\n---\n- hosts: someserver\n  roles:\n    - { role: airflow }\n```\n\n## Usage :runner:\n\nLook to the defaults properties files to see the possible configuration properties, take a look for them:\n\n- [`main.yml`](./defaults/main/main.yml) for airflow general purpose.\n- [`airflow-cfg.yml`](./defaults/main/airflow-cfg.yml) for all the related airflow.cfg config parameters.\n- [`webserver-config-py.yml`](./defaults/main/webserver-config-py.yml) for all the related webserver_config.py config parameters.\n\n❗Attention:❗\n\n- ⚠️ This version is no longer compatible with Apache Airflow 1.x versions.\n- ⚠️ Check out the new way to set airflow.cfg parameters in [`airflow-cfg.yml`](./defaults/main/airflow-cfg.yml) file.\n\n👉 Don't forget :\n\n- 🦸 To set your Admin user.\n- 🔑 To set Fernet key.\n- 🔑 To set webserver secret key.\n- 📝 To set your AIRFLOW_HOME and AIRFLOW_CONFIG at your own discretion.\n- 📝 To set your installation and config skelton paths at your own discretion.\n  - 👉 See `airflow_skeleton_paths` in [`main.yml`](./defaults/main/main.yml)\n- 🐍 Python and pip version.\n- 📦 [Extra packages](#package-Extra-packages) if you need additional operators, hooks, sensors...\n- 📦 [Required Python packages](#package-Required-Python-packages) with version specific like SQLAlchemy for example (to avoid known Airflow bugs❗️) like below or because are necessary\n\n### :package: Required Python packages\n\n[`airflow_required_python_packages`](./defaults/main/main.yml) should be a list following this format:\n\n```yml\n# This is an example of how to set the required python packages\nairflow_required_python_packages:\n  - { name: SQLAlchemy, version: major.minor.patch }\n  - { name: psycopg2 }\n  - {name: pyasn1}\n```\n\n### :package: Extra packages\n\n[`airflow_extra_packages`](./defaults/main/main.yml) should be a list following this format:\n\n```yml\n# This is an example of how to set the extra packages\nairflow_extra_packages:\n  - apache.atlas\n  - celery\n  - ssh\n```\n\n👉 For more info about this extra packages see: [Airflow extra packages](https://airflow.apache.org/docs/apache-airflow/stable/extra-packages-ref.html)\n\n## Testing :test_tube:\n\n```bash\npipenv install -r test-requirements.txt --python 3.12\n\n# Optional\npipenv shell  # if in shell just use `molecule COMMAND`\n\npipenv run molecule test  # To run role test\n# or\npipenv run molecule converge  # To run play with the role\n```\n\n## Built With :building_construction:\n\n![Ansible](https://img.shields.io/badge/ansible-2.18.2-green.svg)\n\n## Versioning :card_file_box:\n\nFor the versions available, see the [tags on this repository](https://github.com/idealista/airflow-role/tags).\n\nAdditionally you can see what change in each version in the [CHANGELOG.md](CHANGELOG.md) file.\n\n## Authors :superhero:\n\n- **Idealista** - *Work with* - [idealista](https://github.com/idealista)\n\nSee also the list of [contributors](https://github.com/idealista/airflow-role/contributors) who participated in this project.\n\n## License :spiral_notepad:\n\n![Apache 2.0 License](https://img.shields.io/hexpm/l/plug.svg)\n\nThis project is licensed under the [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) license - see the [LICENSE](LICENSE) file for details.\n\n## Contributing :construction_worker:\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fidealista%2Fairflow-role","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fidealista%2Fairflow-role","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fidealista%2Fairflow-role/lists"}