forked from CCCHH/ansible-infra
		
	https://github.com/netbox-community/netbox/releases/tag/v4.4.0 https://github.com/netbox-community/netbox/issues/18349
		
			
				
	
	
		
			110 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
- name: Ensure all dependencies are installed
 | 
						|
  ansible.builtin.apt:
 | 
						|
    name:
 | 
						|
      - python3
 | 
						|
      - python3-pip
 | 
						|
      - python3-venv
 | 
						|
      - python3-dev
 | 
						|
      - build-essential
 | 
						|
      - libxml2-dev
 | 
						|
      - libxslt1-dev
 | 
						|
      - libffi-dev
 | 
						|
      - libpq-dev
 | 
						|
      - libssl-dev
 | 
						|
      - zlib1g-dev
 | 
						|
      - git
 | 
						|
  become: true
 | 
						|
 | 
						|
- name: Ensure NetBox source is present
 | 
						|
  ansible.builtin.git:
 | 
						|
    repo: https://github.com/netbox-community/netbox.git
 | 
						|
    dest: /opt/netbox/
 | 
						|
    version: "{{ netbox__version }}"
 | 
						|
  become: true
 | 
						|
  notify:
 | 
						|
    - Run upgrade script
 | 
						|
    - Ensure netbox systemd services are set up and up-to-date
 | 
						|
 | 
						|
- name: Ensures custom pipeline code for OIDC group and role mapping is present
 | 
						|
  ansible.builtin.copy:
 | 
						|
    src: custom_pipeline_oidc_group_and_role_mapping.py
 | 
						|
    dest: /opt/netbox/netbox/netbox/custom_pipeline_oidc_mapping.py
 | 
						|
    mode: "0644"
 | 
						|
    owner: root
 | 
						|
    group: root
 | 
						|
  when: netbox__custom_pipeline_oidc_group_and_role_mapping
 | 
						|
  become: true
 | 
						|
  notify:
 | 
						|
    - Ensure netbox systemd services are set up and up-to-date
 | 
						|
 | 
						|
- name: Ensures custom pipeline code for OIDC group and role mapping is not present
 | 
						|
  ansible.builtin.file:
 | 
						|
    path: /opt/netbox/netbox/netbox/custom_pipeline_oidc_mapping.py
 | 
						|
    state: absent
 | 
						|
  when: not netbox__custom_pipeline_oidc_group_and_role_mapping
 | 
						|
  become: true
 | 
						|
  notify:
 | 
						|
    - Ensure netbox systemd services are set up and up-to-date
 | 
						|
 | 
						|
- name: Ensure netbox user
 | 
						|
  block:
 | 
						|
    - name: Ensure netbox group exists
 | 
						|
      ansible.builtin.group:
 | 
						|
        name: netbox
 | 
						|
        system: true
 | 
						|
      become: true
 | 
						|
 | 
						|
    - name: Ensure netbox user exists
 | 
						|
      ansible.builtin.user:
 | 
						|
        name: netbox
 | 
						|
        group: netbox
 | 
						|
        password: '!'
 | 
						|
        system: true
 | 
						|
      become: true
 | 
						|
 | 
						|
- name: Ensure relevant directories are owned by netbox user
 | 
						|
  ansible.builtin.file:
 | 
						|
    path: "{{ item }}"
 | 
						|
    state: directory
 | 
						|
    owner: netbox
 | 
						|
    recurse: true
 | 
						|
  become: true
 | 
						|
  loop:
 | 
						|
    - "/opt/netbox/netbox/media/"
 | 
						|
    - "/opt/netbox/netbox/reports/"
 | 
						|
    - "/opt/netbox/netbox/scripts/"
 | 
						|
 | 
						|
- name: Deploy configuration.py
 | 
						|
  ansible.builtin.copy:
 | 
						|
    content: "{{ netbox__config }}"
 | 
						|
    dest: "/opt/netbox/netbox/netbox/configuration.py"
 | 
						|
    mode: "0644"
 | 
						|
    owner: root
 | 
						|
    group: root
 | 
						|
  become: true
 | 
						|
  notify: Ensure netbox systemd services are set up and up-to-date
 | 
						|
 | 
						|
- name: Ensure provided gunicorn config is copied
 | 
						|
  ansible.builtin.copy:
 | 
						|
    remote_src: true
 | 
						|
    src: "/opt/netbox/contrib/gunicorn.py"
 | 
						|
    dest: "/opt/netbox/gunicorn.py"
 | 
						|
    mode: "0644"
 | 
						|
    owner: root
 | 
						|
    group: root
 | 
						|
  become: true
 | 
						|
  notify: Ensure netbox systemd services are set up and up-to-date
 | 
						|
 | 
						|
- name: Ensure provided netbox systemd service files are copied
 | 
						|
  ansible.builtin.copy:
 | 
						|
    remote_src: true
 | 
						|
    src: "/opt/netbox/contrib/{{ item }}"
 | 
						|
    dest: "/etc/systemd/system/{{ item }}"
 | 
						|
    mode: "0644"
 | 
						|
    owner: root
 | 
						|
    group: root
 | 
						|
  become: true
 | 
						|
  loop:
 | 
						|
    - "netbox.service"
 | 
						|
    - "netbox-rq.service"
 | 
						|
  notify: Ensure netbox systemd services are set up and up-to-date
 |