AnsiblePilot — Master Ansible Automation

AnsiblePilot is the leading resource for learning Ansible automation, DevOps, and infrastructure as code. Browse over 1,400 tutorials covering Ansible modules, playbooks, roles, collections, and real-world examples. Whether you are a beginner or an experienced engineer, our step-by-step guides help you automate Linux, Windows, cloud, containers, and network infrastructure.

Popular Topics

About Luca Berton

Luca Berton is an Ansible automation expert, author of 8 Ansible books published by Apress and Leanpub including "Ansible for VMware by Examples" and "Ansible for Kubernetes by Example", and creator of the Ansible Pilot YouTube channel. He shares practical automation knowledge through tutorials, books, and video courses to help IT professionals and DevOps engineers master infrastructure automation.

Ansible for Agentic AI: Automate Multi-Agent Systems Infrastructure (2026 Guide)

By Luca Berton · Published 2024-01-01 · Category: installation

Complete guide to using Ansible for agentic AI infrastructure. Deploy multi-agent systems, orchestrate AI agent workflows, manage LLM backends, configure agent.

Agentic AI — autonomous systems that plan, decide, and execute tasks without constant human input — is the defining technology trend of 2026. Gartner lists multiagent systems in its top 10 strategic trends, and enterprises are redesigning operations around AI agents. Ansible plays a critical role in deploying, configuring, and orchestrating the infrastructure these agents run on.

What Is Agentic AI?

Agentic AI systems go beyond chat interfaces. They autonomously:

  • Plan — break complex goals into subtasks
  • Execute — call APIs, run code, interact with systems
  • Collaborate — multiple agents coordinate on workflows
  • Learn — adapt based on results and feedback
Examples include autonomous code review pipelines, self-healing infrastructure, automated security response, and multi-agent customer service systems.

See also: Ansible for AI Infrastructure: Deploy LLMs, GPUs & ML Pipelines (2026 Guide)

Why Ansible for Agentic AI?

ChallengeAnsible Solution
Deploy LLM backends (vLLM, Ollama, TGI)Playbooks for GPU server provisioning
Configure agent frameworks (AutoGen, CrewAI, LangGraph)Roles for agent runtime setup
Manage vector databases (Pgvector, Milvus, Qdrant)Automated DB deployment and scaling
Orchestrate multi-agent communicationNetwork and service mesh configuration
Scale inference endpointsDynamic inventory + auto-scaling
Secure agent-to-agent trafficTLS, mTLS, and network policy automation

Deploy an LLM Backend with Ansible

vLLM Inference Server

- name: Deploy vLLM inference server
  hosts: gpu_servers
  become: true
  vars:
    model_name: "meta-llama/Llama-3.1-70B-Instruct"
    vllm_port: 8000
    gpu_memory_utilization: 0.9

  tasks:
    - name: Install NVIDIA Container Toolkit
      ansible.builtin.shell: |
        curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
        curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
          sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
          tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
      args:
        creates: /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

    - name: Install nvidia-container-toolkit
      ansible.builtin.apt:
        name: nvidia-container-toolkit
        state: present
        update_cache: true

    - name: Deploy vLLM container
      community.docker.docker_container:
        name: vllm-inference
        image: "vllm/vllm-openai:latest"
        state: started
        restart_policy: unless-stopped
        ports:
          - "{{ vllm_port }}:8000"
        volumes:
          - /models:/root/.cache/huggingface
        env:
          HUGGING_FACE_HUB_TOKEN: "{{ vault_hf_token }}"
        command: >
          --model {{ model_name }}
          --gpu-memory-utilization {{ gpu_memory_utilization }}
          --max-model-len 8192
        device_requests:
          - driver: nvidia
            count: -1
            capabilities:
              - - gpu
      no_log: true

Ollama for Local Agent Development

- name: Deploy Ollama for local AI agents
  hosts: dev_servers
  become: true
  tasks:
    - name: Install Ollama
      ansible.builtin.shell: curl -fsSL https://ollama.com/install.sh | sh
      args:
        creates: /usr/local/bin/ollama

    - name: Pull models for agents
      ansible.builtin.command: "ollama pull {{ item }}"
      loop:
        - llama3.1:8b        # Fast agent reasoning
        - codellama:13b      # Code generation agent
        - nomic-embed-text   # Embedding for RAG
      register: pull_result
      changed_when: "'pulling' in pull_result.stdout"

    - name: Configure Ollama for network access
      ansible.builtin.copy:
        content: |
          [Service]
          Environment="OLLAMA_HOST=0.0.0.0"
          Environment="OLLAMA_ORIGINS=*"
        dest: /etc/systemd/system/ollama.service.d/override.conf
      notify: restart ollama

Deploy a Multi-Agent Framework

AutoGen Studio

- name: Deploy AutoGen multi-agent platform
  hosts: agent_servers
  become: true
  vars:
    autogen_port: 8081
    llm_endpoint: "http://{{ hostvars['gpu01']['ansible_host'] }}:8000/v1"

  tasks:
    - name: Create virtual environment
      ansible.builtin.pip:
        name:
          - autogenstudio
          - pyautogen[retrievechat]
        virtualenv: /opt/autogen/venv
        virtualenv_python: python3.11

    - name: Deploy agent configuration
      ansible.builtin.template:
        src: autogen-config.json.j2
        dest: /opt/autogen/config.json
        mode: '0600'
      no_log: true   # Contains API keys

    - name: Create systemd service
      ansible.builtin.copy:
        content: |
          [Unit]
          Description=AutoGen Studio
          After=network.target

          [Service]
          Type=simple
          User=autogen
          WorkingDirectory=/opt/autogen
          ExecStart=/opt/autogen/venv/bin/autogenstudio ui --host 0.0.0.0 --port {{ autogen_port }}
          Restart=always

          [Install]
          WantedBy=multi-user.target
        dest: /etc/systemd/system/autogen-studio.service
      notify: restart autogen

CrewAI Agent Deployment

- name: Deploy CrewAI agent crew
  hosts: agent_servers
  vars:
    crew_config:
      agents:
        - name: researcher
          role: "Senior Research Analyst"
          goal: "Find and analyze technical information"
          backstory: "Expert at finding accurate technical data"
          llm: "openai/gpt-4o"
        - name: writer
          role: "Technical Writer"
          goal: "Create clear documentation from research"
          backstory: "Skilled at translating complex topics"
          llm: "openai/gpt-4o"

  tasks:
    - name: Install CrewAI
      ansible.builtin.pip:
        name:
          - crewai
          - crewai-tools
        virtualenv: /opt/crewai/venv

    - name: Deploy crew configuration
      ansible.builtin.copy:
        content: "{{ crew_config | to_nice_yaml }}"
        dest: /opt/crewai/agents.yaml
        mode: '0644'

    - name: Deploy tool configurations
      ansible.builtin.template:
        src: "{{ item }}"
        dest: "/opt/crewai/config/{{ item | basename | regex_replace('.j2$', '') }}"
      loop:
        - templates/tools.yaml.j2
        - templates/tasks.yaml.j2

See also: AI DevOps Ansible Community on Skool

Deploy Vector Database for Agent Memory

- name: Deploy Qdrant vector database for agent RAG
  hosts: vector_db
  become: true
  vars:
    qdrant_port: 6333
    qdrant_grpc_port: 6334

  tasks:
    - name: Create data directory
      ansible.builtin.file:
        path: /var/lib/qdrant
        state: directory
        owner: "1000"
        group: "1000"

    - name: Deploy Qdrant
      community.docker.docker_container:
        name: qdrant
        image: qdrant/qdrant:latest
        state: started
        restart_policy: unless-stopped
        ports:
          - "{{ qdrant_port }}:6333"
          - "{{ qdrant_grpc_port }}:6334"
        volumes:
          - /var/lib/qdrant:/qdrant/storage
        env:
          QDRANT__SERVICE__API_KEY: "{{ vault_qdrant_api_key }}"
      no_log: true

    - name: Create agent memory collection
      ansible.builtin.uri:
        url: "http://localhost:{{ qdrant_port }}/collections/agent_memory"
        method: PUT
        body_format: json
        body:
          vectors:
            size: 768
            distance: Cosine
          optimizers_config:
            indexing_threshold: 10000
        headers:
          api-key: "{{ vault_qdrant_api_key }}"
        status_code: [200, 409]   # 409 = already exists
      no_log: true

Secure Agent-to-Agent Communication

- name: Secure multi-agent communication
  hosts: agent_servers
  become: true
  tasks:
    - name: Generate agent TLS certificates
      community.crypto.x509_certificate:
        path: "/etc/ssl/agents/{{ inventory_hostname }}.crt"
        privatekey_path: "/etc/ssl/agents/{{ inventory_hostname }}.key"
        provider: ownca
        ownca_path: /etc/ssl/agents/ca.crt
        ownca_privatekey_path: /etc/ssl/agents/ca.key
        common_name: "{{ inventory_hostname }}"
        subject_alt_name:
          - "DNS:{{ inventory_hostname }}"
          - "IP:{{ ansible_host }}"

    - name: Configure agent network policies
      ansible.builtin.template:
        src: agent-network-policy.yaml.j2
        dest: /etc/agent-policies/network.yaml
      vars:
        allowed_agent_ports:
          - 8000   # LLM inference
          - 6333   # Vector DB
          - 8081   # Agent UI
          - 9090   # Agent metrics

    - name: Deploy agent API gateway
      community.docker.docker_container:
        name: agent-gateway
        image: envoyproxy/envoy:v1.31-latest
        state: started
        ports:
          - "443:8443"
        volumes:
          - /etc/ssl/agents:/etc/ssl/agents:ro
          - /etc/envoy/envoy.yaml:/etc/envoy/envoy.yaml:ro

See also: Ansible for Domain-Specific AI Models: Deploy & Manage Enterprise DSLMs (2026 Guide)

Monitor Agent Performance

- name: Deploy agent observability stack
  hosts: monitoring
  become: true
  tasks:
    - name: Deploy Prometheus for agent metrics
      community.docker.docker_container:
        name: prometheus
        image: prom/prometheus:latest
        state: started
        ports:
          - "9090:9090"
        volumes:
          - /etc/prometheus:/etc/prometheus

    - name: Configure agent scrape targets
      ansible.builtin.template:
        src: prometheus-agents.yml.j2
        dest: /etc/prometheus/prometheus.yml
      vars:
        agent_targets:
          - job: vllm_inference
            targets: "{{ groups['gpu_servers'] | map('regex_replace', '$', ':8000') }}"
            metrics_path: /metrics
          - job: agent_framework
            targets: "{{ groups['agent_servers'] | map('regex_replace', '$', ':8081') }}"
          - job: vector_db
            targets: "{{ groups['vector_db'] | map('regex_replace', '$', ':6333') }}"
            metrics_path: /metrics
      notify: reload prometheus

Full Multi-Agent Architecture Playbook

# site.yml — Deploy complete agentic AI platform
- name: Common setup
  hosts: all
  roles:
    - common
    - security-baseline
    - monitoring-agent

- name: GPU inference servers
  hosts: gpu_servers
  roles:
    - nvidia-drivers
    - container-runtime
    - vllm-inference

- name: Vector databases
  hosts: vector_db
  roles:
    - qdrant
    - backup-agent

- name: Agent framework servers
  hosts: agent_servers
  roles:
    - agent-runtime
    - agent-gateway
    - agent-tools

- name: Monitoring
  hosts: monitoring
  roles:
    - prometheus
    - grafana
    - alertmanager

Inventory for Multi-Agent Deployment

# inventory/agentic-ai.yml
all:
  children:
    gpu_servers:
      hosts:
        gpu01:
          ansible_host: 10.0.1.10
          gpu_count: 4
          gpu_type: A100
        gpu02:
          ansible_host: 10.0.1.11
          gpu_count: 2
          gpu_type: L40S
    vector_db:
      hosts:
        qdrant01:
          ansible_host: 10.0.2.10
          storage_size: 500Gi
    agent_servers:
      hosts:
        agent01:
          ansible_host: 10.0.3.10
          agent_framework: autogen
        agent02:
          ansible_host: 10.0.3.11
          agent_framework: crewai
    monitoring:
      hosts:
        mon01:
          ansible_host: 10.0.4.10

Best Practices

  1. Separate inference from agents — GPU servers handle LLM inference; agent logic runs on CPU servers
  2. Use API keys for all agent endpoints — Never expose LLM or vector DB ports without authentication
  3. Implement rate limiting — Agentic loops can spiral; add token budgets and call limits
  4. Monitor token usage — Track cost per agent, per task, per workflow
  5. Version agent configurations — Store agent definitions in Git, deploy with Ansible
  6. Test with check modeansible-playbook --check before deploying agent changes
  7. Use Ansible Vault — All API keys, tokens, and credentials encrypted

FAQ

What is agentic AI and why does it need infrastructure automation?

Agentic AI systems are autonomous AI agents that plan and execute tasks independently. They need LLM inference servers, vector databases, agent frameworks, and networking — all infrastructure that Ansible automates for consistent, repeatable deployments.

Can Ansible deploy multi-agent systems like AutoGen or CrewAI?

Yes. Ansible can provision GPU servers, deploy LLM backends (vLLM, Ollama), install agent frameworks (AutoGen, CrewAI, LangGraph), set up vector databases for agent memory, and configure secure agent-to-agent communication.

How do I scale agentic AI infrastructure with Ansible?

Use dynamic inventory to discover GPU resources, deploy additional inference endpoints with playbooks, and use serial for rolling updates. Combine with Kubernetes (via the k8s module) for elastic scaling of agent workloads.

What security considerations exist for multi-agent systems?

Secure agent communication with mTLS, authenticate all API endpoints, implement token budgets to prevent runaway costs, isolate agent networks, and use Ansible Vault for all secrets. Monitor agent actions with comprehensive logging.

Conclusion

Agentic AI is moving from demos to production in 2026. Ansible provides the infrastructure automation layer that makes multi-agent systems deployable, reproducible, and manageable at scale. From GPU provisioning to agent framework deployment to security hardening, Ansible playbooks turn complex AI architectures into version-controlled, repeatable infrastructure.

Category: installation

Browse all Ansible tutorials · AnsiblePilot Home