Playbook Structure
A playbook
is the project that AIOP will use to build packages. It consists of multiple files and folders.
Here's an example of a playbook structure:
- .aiop
- resource_locale_1.txt
- resource_locale_2.md
- resources_locales.aml
- resources_distantes.aml
- snake_case_lint.py
- apply_patch.py
- .amlignore
- README.md
- CHANGELOG.md
You'll notice that the .git
folder is present because the playbook is a git project, which is recommended for versioning and effective collaboration. The playbook is a git project like any other, and you can use all the features of git.
No files are required for AIOP to work. You can use AIOP without playbook configuration. However, functionality will be limited.
Details of Files and Folders
The .aiop
file
This file contains the playbook's configuration files:
inventory_config
: Inventory configuration. Learn more.inventory
: Inventory list. Learn more.playbook
: Playbook configuration. Learn more.packages
: Packages to build configuration. En savoir plus.
The resources
Folder
For this example, the folder named resources
contains the playbook's resources. It is optional, and you can name it as you like. It contains a locales
folder with two files with the .aml
extension. The locales
folder contains two local resources.
The custom_jobs
Folder
This folder is optional and contains Python scripts that can be used in custom package generation tasks. The Python scripts must be placed in a folder of your choice (name and location) and specified in the playbook's configuration file. Learn more
The free
plan does not allow adding custom tasks and they will be ignored.
The .aml
File
The .aml
file serves as the entry point for resources sent to AIOP. The tool reads this file to interpret the resources and build the associated packages. Although optional, this file can be placed anywhere in the playbook, but if AIOP finds no .aml
files in the project or its subdirectories, no package generation will be initiated.
The .amlignore
File
The .amlignore
file is a configuration file that allows you to ignore certain files or folders when generating packages. It is optional but must be named .amlignore
and placed at the root of the playbook. The format of this file is the same as that of .gitignore
, and you can find documentation on adding files and folders to ignore here (opens in a new tab).
The README.md
and CHANGELOG.md
Files
These files are optional but recommended. They document the project and track changes made to the project. The README.md
file is the project's documentation file, and the CHANGELOG.md
file contains the changes made to the project.