# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
---
# This playbook prepares all target hosts for Openwhisk installation.
# It will install all necessary packages to run Openwhisk playbooks.

- hosts: all:!ansible
  serial: 1
  roles:
  - prereq
