Lab Guide: Deploying PostgreSQL and PGAdmin with Ansible Lightspeed

A guide to using Ansible Lightspeed to generate a playbook that installs postgresql-server and creates a PGAdmin Podman container.


Introduction and Setup

Important Note About This Lab

IBM watsonx Code Assistant models are continuously updated and improved. As a result, some specific task generation challenges in this lab may not work exactly as described due to model updates. This is expected behavior.

The primary goal of this lab is to help you understand the key features of Ansible Lightspeed, including:

  • Playbook Generation - Generating entire playbooks from natural language prompts

  • Task Generation - Generating individual tasks or multiple tasks at once

  • Training Matches - Understanding the transparency of AI suggestions

  • Best Practices - Learning how Lightspeed incorporates Ansible best practices

If a specific prompt doesn’t generate suggestions as expected:

  • Try playbook generation instead of task generation (click the Ansible icon → Generate a playbook button, enter your prompt, review the outline, and click Continue)

  • Experiment with different prompt variations to see what gives you the best suggestions

  • Simplify complex multi-task prompts into separate single-task prompts

  • The learning objectives remain the same: understanding how to work with AI-assisted Ansible development

In this challenge, you will use Ansible Lightspeed to generate an Ansible Playbook that automates a complete database and management tool setup.

Your Mission

Your goal is to use Ansible Lightspeed to generate a playbook that automates the following tasks:

  1. Installs postgresql-server, initializes the database, and starts and enables the postgresql service.

  2. Configures the firewall for postgresql traffic.

  3. Uses podman to configure and run the dpage/pgadmin4 container.

The examples used in this lab are available in the Ansible Lightspeed Demo repository.

Need Help? If you encounter difficulties or want to verify your work, you can reference the solution playbook at playbooks/infra/install_pgsql_and_pgadmin/solution_install_pgsql_pgadmin.yml in the repository.


Task 1: Generate Playbook Tasks with Ansible Lightspeed

You will now edit a pre-created playbook file and use natural language prompts to have Ansible Lightspeed generate the necessary tasks.

  1. Open the playbook file in VS Code.

    1. Click on the VS Code tab at the top of your lab environment

      Work in a new browser tab: For the best experience with Ansible Lightspeed features, click the VS Code tab to open it in a new browser tab rather than using the inline embedded window.

    2. On the left side of VS Code, click the Explorer icon (two overlapping documents) to show the file explorer

    3. In the file explorer, expand these folders: playbooksinfrainstall_pgsql_and_pgadmin

    4. Click on demo_install_pgsql_pgadmin.yml to open it in the editor

  2. Generate the PostgreSQL installation task.

    1. In the playbook file, find the line:

          #- name: Install postgresql server package
    2. Remove the # symbol at the beginning of the line (or press CTRL+/ for Windows/Linux or CMD+/ for Mac)

    3. Place your cursor at the very end of the line (after "package")

    4. Press ENTER to create a new line

    5. Wait a moment - Ansible Lightspeed will show a suggestion in gray text

    6. Press TAB to accept the suggestion

      _Lightspeed Highlight:_ The suggestion correctly uses the `ansible.builtin.dnf` module and incorporates best practices.
  3. Generate the multi-task for config, start, and firewall.

    Multi-task prompt: This comment line starts with a single # and uses & to separate multiple tasks. Do NOT uncomment this line - just press ENTER at the end.

    1. Find the line:

          # Do initial postgresql config & start the service & allow the traffic through the firewall
    2. Do NOT uncomment this line - leave the # symbol in place

    3. Place your cursor at the end of the line (after "firewall")

    4. Press ENTER to create a new line

    5. Press TAB when Lightspeed shows suggestions for all THREE tasks

      _Lightspeed Highlight:_ Lightspeed uses the playbook context to infer the correct service (`postgresql`) and default port (`5432/tcp`) and generates three distinct, idempotent tasks from this single prompt.
  4. Generate the Podman container task.

    1. Find the commented line:

          #- name: Create podman container using pgadmin_container var
    2. Uncomment the line by removing the # (or press CTRL+/ / CMD+/)

    3. Place your cursor at the end of the line (after "var")

    4. Press ENTER to create a new line

    5. Press TAB when Lightspeed shows a suggestion

      _Lightspeed Highlight:_ Lightspeed correctly identifies that the `pgadmin_container` variable is defined in the playbook's `vars` section and integrates it into the suggested task.
  5. Save the playbook.

    Click **File** → **Save** from the top menu, or press `CTRL+S` (Windows/Linux) or `CMD+S` (Mac).

Task 2: Review Ansible Lightspeed Training Matches

One of Ansible Lightspeed’s key differentiators is providing information on the potential training data used to generate suggestions.

  1. Open the Lightspeed Training Matches view.

    1. At the top of VS Code, click View in the menu bar

    2. Select Open View…​

    3. In the search box that appears, type Lightspeed

    4. Click on Lightspeed Training Matches from the list

  2. Examine a training match.

    1. In your playbook, click on any task name you generated

    2. Delete one line of the generated code and press ENTER to regenerate the suggestion

    3. Look at the Lightspeed Training Matches pane (usually at the bottom of VS Code)

    4. You’ll see potential training sources. Click on any entry to see details including the content source, author, and license information.

Task 3: Run the Playbook

You can now choose to run the completed playbook using either the automation controller or ansible-navigator.

Option 1: Using Automation Controller

  1. Commit and push the playbook to Git.

    1. On the left side of VS Code, click the Source Control icon (it looks like a branch with circles)

    2. You should see demo_install_pgsql_pgadmin.yml listed under "Changes"

    3. Hover over the file name and click the + (plus) icon that appears to stage the changes

    4. At the top, in the "Message" box, type a commit message like: Install PostgreSQL and PGAdmin

    5. Click the Commit button (checkmark icon)

    6. Click the Sync Changes button to push your playbook to the Git repository

  2. Run the playbook from Automation Controller.

    1. Click the Ansible Automation Platform tab at the top of the lab window

    2. If you see a login screen, enter:

      • Username: admin

      • Password: ansible123!

    3. On the left sidebar, click ResourcesTemplates

    4. Find the template named Deploy PostgreSQL and PG Admin

    5. Click the launch icon (🚀 rocket ship) on the right side of that row

    6. Wait for the job to complete successfully (you’ll see a green "Successful" status)

Option 2: Using ansible-navigator

  1. Open a terminal in VS Code.

    1. Make sure you’re on the VS Code tab

    2. Look at the top menu bar and click TerminalNew Terminal

    3. A terminal panel will open at the bottom of VS Code

  2. Navigate to the playbook folder.

    In the terminal, type the following command and press `ENTER`:
    cd playbooks/infra/install_pgsql_and_pgadmin
  3. Run the playbook with ansible-navigator.

    Type the following command and press `ENTER`:
    ansible-navigator run demo_install_pgsql_pgadmin.yml
    The playbook will run and show you the results. Press the `ESC` key to return to the terminal prompt when it's done.

Task 4: Verify the PGAdmin Installation

Finally, verify that the PGAdmin web interface is accessible.

  1. Open the PGAdmin web interface.

    At the very top of your lab environment, click the **PGAdmin** tab.
  2. Verify PGAdmin is running.

    If the playbook completed successfully, you should see the PGAdmin login interface. This confirms that PostgreSQL was installed and PGAdmin container is running correctly!

Conclusion and Additional Resources

Congratulations! You’ve successfully created an Ansible Playbook using Ansible Lightspeed to deploy PostgreSQL and PGAdmin!

Solution Playbook Available: If you encountered issues or want to compare your work, you can review the complete solution at playbooks/infra/install_pgsql_and_pgadmin/solution_install_pgsql_pgadmin.yml in the repository.

Additional Resources

Feedback

Please provide your feedback or report bugs using the Ansible Lightspeed Feedback section located in the VS Code Ansible Extension sidebar.