--- - name: Create NetBox installation directory file: path: "{{ netbox_install_dir }}" state: directory owner: root group: root mode: '0755' tags: - netbox-deploy - directories - name: Create NetBox data directory file: path: "{{ netbox_data_dir }}" state: directory owner: root group: root mode: '0755' tags: - netbox-deploy - directories - name: Create NetBox backup directory file: path: "{{ netbox_backup_dir }}" state: directory owner: root group: root mode: '0755' tags: - netbox-deploy - directories - name: Clone NetBox Docker repository git: repo: "{{ netbox_repo_url }}" dest: "{{ netbox_install_dir }}" version: "{{ netbox_repo_branch }}" update: "{{ netbox_repo_update }}" force: yes tags: - netbox-deploy - git-clone - name: Generate NetBox secret key set_fact: netbox_secret_key: "{{ netbox_secret_key | default(ansible.builtin.random_string(length=128)) }}" when: netbox_secret_key == "" tags: - netbox-deploy - config - name: Create NetBox environment file template: src: netbox.env.j2 dest: "{{ netbox_install_dir }}/env/netbox.env" mode: '0644' tags: - netbox-deploy - config - name: Create PostgreSQL environment file template: src: postgres.env.j2 dest: "{{ netbox_install_dir }}/env/postgres.env" mode: '0644' tags: - netbox-deploy - config - name: Create Redis environment file template: src: redis.env.j2 dest: "{{ netbox_install_dir }}/env/redis.env" mode: '0644' tags: - netbox-deploy - config - name: Create Redis Cache environment file template: src: redis-cache.env.j2 dest: "{{ netbox_install_dir }}/env/redis-cache.env" mode: '0644' tags: - netbox-deploy - config - name: Create Docker Compose override file template: src: docker-compose.override.yml.j2 dest: "{{ netbox_install_dir }}/docker-compose.override.yml" mode: '0644' tags: - netbox-deploy - config - name: Pull Docker images community.docker.docker_compose_v2: project_src: "{{ netbox_install_dir }}" pull: always tags: - netbox-deploy - docker-pull - name: Start NetBox services community.docker.docker_compose_v2: project_src: "{{ netbox_install_dir }}" state: present tags: - netbox-deploy - docker-start - name: Wait for NetBox to be ready uri: url: "https://{{ netbox_domain }}/" method: GET status_code: 200 validate_certs: false register: netbox_ready until: netbox_ready.status == 200 retries: 30 delay: 10 tags: - netbox-deploy - health-check