Chapter 4. Creating a playbook project 4.1. Scaffolding a playbook project The following steps describe the process for scaffolding a new playbook project with the Ansible VS Code extension. Prerequisites You have installed Ansible development tools. You have installed and opened the Ansible VS Code extension. You have identified a directory where you want to save the project. Procedure Open VS Code. Click the Ansible icon in the VS Code activity bar to open the Ansible extension. Select Get started in the Ansible content creator section. The Ansible content creator tab opens. In the Create section, click Ansible playbook project . The Create Ansible project tab opens. In the form in the Create Ansible project tab, enter the following: Destination directory : Enter the path to the directory where you want to scaffold your new playbook project. Note If you enter an existing directory name, the scaffolding process overwrites the contents of that directory. The scaffold process only allows you to use an existing directory if you enable the Force option. If you are using the containerized version of Ansible Dev tools, the destination directory path is relative to the container, not a path in your local system. To discover the current directory name in the container, run the pwd command in a terminal in VS Code. If the current directory in the container is workspaces , enter workspaces/<destination_directory_name> . If you are using a locally installed version of Ansible Dev tools, enter the full path to the directory, for example /user/<username>/projects/<destination_directory_name> . SCM organization and SCM project : Enter a name for the directory and subdirectory where you can store roles that you create for your playbooks. Enter a name for the directory where you want to scaffold your new playbook project. Verification After the project directory has been created, the following message appears in the Logs pane of the Create Ansible Project tab. In this example, the destination directory name is destination_directory_name . ------------------ ansible-creator logs ------------------ Note: ansible project created at /Users/username/test_project The following directories and files are created in your project directory: USD tree -a -L 5 . ├── .devcontainer │ ├── devcontainer.json │ ├── docker │ │ └── devcontainer.json │ └── podman │ └── devcontainer.json ├── .gitignore ├── README.md ├── ansible-navigator.yml ├── ansible.cfg ├── collections │ ├── ansible_collections │ │ └── scm_organization_name │ │ └── scm_project_name │ └── requirements.yml ├── devfile.yaml ├── inventory │ ├── group_vars │ │ ├── all.yml │ │ └── web_servers.yml │ ├── host_vars │ │ ├── server1.yml │ │ ├── server2.yml │ │ ├── server3.yml │ │ ├── switch1.yml │ │ └── switch2.yml │ └── hosts.yml ├── linux_playbook.yml ├── network_playbook.yml └── site.yml

Commands:
------------------ ansible-creator logs ------------------ Note: ansible project created at /Users/username/test_project
tree -a -L 5 . ├── .devcontainer │ ├── devcontainer.json │ ├── docker │ │ └── devcontainer.json │ └── podman │ └── devcontainer.json ├── .gitignore ├── README.md ├── ansible-navigator.yml ├── ansible.cfg ├── collections │ ├── ansible_collections │ │ └── scm_organization_name │ │ └── scm_project_name │ └── requirements.yml ├── devfile.yaml ├── inventory │ ├── group_vars │ │ ├── all.yml │ │ └── web_servers.yml │ ├── host_vars │ │ ├── server1.yml │ │ ├── server2.yml │ │ ├── server3.yml │ │ ├── switch1.yml │ │ └── switch2.yml │ └── hosts.yml ├── linux_playbook.yml ├── network_playbook.yml └── site.yml