# Install with Ansible


> Install F5 NGINX Instance Manager using the open-source Ansible role for repeatable, automated deployments.


**Note:** Some commands, file paths, and configuration references still use `nms` due to the ongoing transition from NGINX Management Suite (NMS) to NGINX Instance Manager (NIM). These will be updated in future releases.

## Introduction

This guide explains how to install F5 NGINX Instance Manager using the open-source Ansible role.

With Ansible, you can automate and replicate your installation across multiple environments.

**Note:** 
The steps in this guide refer to the [Ansible NGINX Instance Manager Role](https://github.com/nginxinc/ansible-role-nginx-management-suite) project on GitHub.

---

## Overview

The Ansible role for NGINX Instance Manager simplifies the installation process by installing all the prerequisites and any modules you specify.

![A diagram showing the installation flow of the NGINX Instance Manager Ansible role, with four steps: installing NGINX, installing ClickHouse, adding the NGINX Instance Manager repository, and installing the NGINX Instance Manager module(s).](img/iac/ansible-flow.png)

---

## System requirements

- The Ansible role requirements can be viewed [on GitHub](https://github.com/nginxinc/ansible-role-nginx-management-suite#requirements).

---

## Installation steps

1. Install Ansible by following the [installation steps on GitHub](https://github.com/nginxinc/ansible-role-nginx-management-suite?tab=readme-ov-file#ansible).
2. Create the inventory file with the details of the host you want to install NGINX Instance Manager on. Make sure you have access to the host. [Example here](https://github.com/nginxinc/ansible-role-nginx-management-suite?tab=readme-ov-file#create-inventory-file).
3. Create the requirements file and install the required Ansible role by following [these steps](https://github.com/nginxinc/ansible-role-nginx-management-suite?tab=readme-ov-file#install-required-roles-and-collections).

4. Create and run the Ansible playbook. Create a file named `nms-playbook.yml` (or any other name) with contents similar to the following example:

    ```yaml
    - hosts: nms
      become: yes
      vars:
        nginx_license:
          certificate: ./nginx-repo.crt
          key: ./nginx-repo.key
        nms_setup: install
        nms_version: 2.16.0*
        nms_user_name: admin
        nms_user_passwd: default
        nms_modules:
          - name: sm
      collections:
        - nginxinc.nginx_core
      roles:
        - nginxinc.nginx_management_suite
    ```

5. Run the playbook:

    ```shell
    ansible-playbook -i <path-to-your-hostfile> nms-playbook.yml
    ```

**Note:**  For a comprehensive list of configuration options, view the [default `main.yaml` file](https://github.com/nginxinc/ansible-role-nginx-management-suite/blob/main/defaults/main.yml) on GitHub. 

---

## Getting support

If you need help or have questions, you can request support from the [NGINX Instance Manager Ansible Role Project](https://github.com/nginxinc/ansible-role-nginx-management-suite/blob/main/SUPPORT.md) on GitHub.
