mirror of
				https://gitlab.sectorq.eu/jaydee/ansible.git
				synced 2025-10-29 17:40:08 +01:00 
			
		
		
		
	bitwarden
This commit is contained in:
		
							
								
								
									
										4
									
								
								playbooks/00_clone_git_repo.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								playbooks/00_clone_git_repo.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| - hosts: datacenter | ||||
|   name: Clone git | ||||
|   become: true | ||||
|   tasks: | ||||
							
								
								
									
										42
									
								
								roles/autofs-client/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								roles/autofs-client/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| - block: | ||||
|   - name: include vault | ||||
|     ansible.builtin.include_vars: | ||||
|       file: jaydee.yml | ||||
|   - name: Install autofs | ||||
|     ansible.builtin.apt: | ||||
|       name:  | ||||
|         - autofs | ||||
|         - cifs-utils | ||||
|       state: present | ||||
|  | ||||
|   - name: Creating a file with content | ||||
|     copy: | ||||
|       dest: "/etc/auto.auth" | ||||
|       content: | | ||||
|         username={{ samba_user }} | ||||
|         password={{ samba_password }} | ||||
|          | ||||
|   - name: Creating a file with content | ||||
|     copy: | ||||
|       dest: "/etc/auto.nas" | ||||
|       content: | | ||||
|         nas-data   -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw    ://nas.home.lan/Data | ||||
|         nas-docker-data   -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw    ://nas.home.lan/docker_data | ||||
|         nas-photo   -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw    ://nas.home.lan/Photo | ||||
|         nas-public   -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw    ://nas.home.lan/Public | ||||
|         nas-install   -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw    ://nas.home.lan/install | ||||
|         nas-media   -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw    ://nas.home.lan/Media | ||||
|         nas-downloads   -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw    ://nas.home.lan/downloads | ||||
|  | ||||
|   - name: Reconfigure zabbix agent Server | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/auto.master | ||||
|       regexp: "^/media/nas.*" | ||||
|       insertafter: '^/media/nas' | ||||
|       line: "/media/nas   /etc/auto.nas --timeout 360 --ghost" | ||||
|  | ||||
|   - name: Restart docker service | ||||
|     ansible.builtin.service: | ||||
|       name: autofs | ||||
|       state: restarted | ||||
|   become: true | ||||
							
								
								
									
										4
									
								
								roles/docker/handlers/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/docker/handlers/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| - name: restart_docker | ||||
|   ansible.builtin.service: | ||||
|     name: docker.service | ||||
|     state: restarted | ||||
							
								
								
									
										57
									
								
								roles/docker/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								roles/docker/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | ||||
| - block: | ||||
|   - name: Install docker | ||||
|     ansible.builtin.apt: | ||||
|       name:  | ||||
|         - ca-certificates | ||||
|         - curl  | ||||
|         - telnet | ||||
|         - net-tools | ||||
|         - python3-pip | ||||
|         - python3-dev | ||||
|       state: present | ||||
|       update_cache: true | ||||
|   - name: Get keys for raspotify | ||||
|     ansible.builtin.shell: | ||||
|       install -m 0755 -d /etc/apt/keyrings | ||||
|  | ||||
|   - name: Get keys for raspotify | ||||
|     ansible.builtin.shell: | ||||
|       curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc | ||||
|  | ||||
|   - name: Get keys for raspotify | ||||
|     ansible.builtin.shell: | ||||
|       chmod a+r /etc/apt/keyrings/docker.asc | ||||
|  | ||||
|   - name: Get keys for raspotify | ||||
|     ansible.builtin.shell: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | ||||
|  | ||||
|   - name: Install docker | ||||
|     ansible.builtin.apt: | ||||
|       name:  | ||||
|         - docker-ce | ||||
|         - docker-ce-cli | ||||
|         - containerd.io | ||||
|         - docker-buildx-plugin | ||||
|         - docker-compose-plugin | ||||
|       update_cache: true | ||||
|  | ||||
|   - name: Create a directory docker.service.d | ||||
|     ansible.builtin.file: | ||||
|       path: /etc/systemd/system/docker.service.d/ | ||||
|       state: directory | ||||
|       mode: '0755' | ||||
|  | ||||
|   - name: Creating a file with content | ||||
|     copy: | ||||
|       dest: "/etc/systemd/system/docker.service.d/override.conf" | ||||
|       content: | | ||||
|         [Service] | ||||
|         ExecStart= | ||||
|         ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 | ||||
|     notify: restart_docker | ||||
|  | ||||
|   - name: Just force systemd to reread configs | ||||
|     ansible.builtin.systemd: | ||||
|       daemon_reload: true | ||||
|  | ||||
|   become: true | ||||
							
								
								
									
										149
									
								
								roles/ldap-client/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								roles/ldap-client/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,149 @@ | ||||
| - block: | ||||
|   - name: Install ldap packages | ||||
|     ansible.builtin.apt: | ||||
|       name:  | ||||
|         - libpam-ldapd | ||||
|         - ldap-utils | ||||
|         - libnss-ldapd | ||||
|   # - name: Reconfigure ldap base | ||||
|   #   ansible.builtin.lineinfile: | ||||
|   #     path: /etc/ldap.conf | ||||
|   #     regexp: "^base " | ||||
|   #     line: "base dc=sectorq,dc=eu" | ||||
|  | ||||
|   # - name: Reconfigure ldap uri | ||||
|   #   ansible.builtin.lineinfile: | ||||
|   #     path: /etc/ldap.conf | ||||
|   #     regexp: "^uri ldap.*" | ||||
|   #     line: "uri ldaps://ldap-server.loc/" | ||||
|   # - name: Reconfigure ldap version | ||||
|   #   ansible.builtin.lineinfile: | ||||
|   #     path: /etc/ldap.conf | ||||
|   #     regexp: "^ldap_version.*" | ||||
|   #     line: "ldap_version 3" | ||||
|  | ||||
|   # - name: Reconfigure ldap rootbinddn | ||||
|   #   ansible.builtin.lineinfile: | ||||
|   #     path: /etc/ldap.conf | ||||
|   #     regexp: "^rootbinddn.*" | ||||
|   #     line: "rootbinddn cn=admin,dc=sectorq,dc=eu" | ||||
|   - name: Reconfigure common-session | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/pam.d/common-session | ||||
|       regexp: "^session optional pam_mkhomedir.so.*" | ||||
|       line: "session optional pam_mkhomedir.so skel=/etc/skel umask=077" | ||||
|   - name: Reconfigure common-session | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/pam.d/common-session | ||||
|       regexp: "^session.*pam_ldap.so.*" | ||||
|       line: "session [success=ok default=ignore]     pam_ldap.so minimum_uid=1000"       | ||||
|   - name: Reconfigure common-password | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/pam.d/common-password | ||||
|       regexp: "^password.*success=1 user_unknown=ignore default=die.*" | ||||
|       line: "password        [success=1 default=ignore]     pam_ldap.so minimum_uid=1000 try_first_pass" | ||||
|   - name: Reconfigure nsswitch passwd | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/nsswitch.conf | ||||
|       regexp: "^passwd:.*" | ||||
|       line: "passwd:         compat systemd ldap" | ||||
|   - name: Reconfigure nsswitch group | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/nsswitch.conf | ||||
|       regexp: "^group:.*" | ||||
|       line: "group:          compat systemd ldap" | ||||
|   - name: Reconfigure nsswitch shadow | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/nsswitch.conf | ||||
|       regexp: "^shadow:.*" | ||||
|       line: "shadow:         compat ldap" | ||||
|  | ||||
|   - name: Reconfigure nslcd uri | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/nslcd.conf | ||||
|       regexp: "^uri ldap.*" | ||||
|       line: "uri ldap://192.168.77.101:2389/" | ||||
|  | ||||
|  | ||||
|   - name: Reconfigure ldap base | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/nslcd.conf | ||||
|       regexp: "^base " | ||||
|       line: "base dc=sectorq,dc=eu" | ||||
|  | ||||
|  | ||||
|   - name: Reconfigure nslcd binddn | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/nslcd.conf | ||||
|       regexp: "^binddn" | ||||
|       line: "binddn cn=jaydee,dc=users,dc=sectorq,dc=eu" | ||||
|        | ||||
|   - name: Reconfigure nslcd bindpw | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/nslcd.conf | ||||
|       regexp: "^bindpw" | ||||
|       line: "bindpw {{ ldap_admin_password }}" | ||||
|   # - name: Reconfigure ldap base | ||||
|   #   ansible.builtin.lineinfile: | ||||
|   #     path: /etc/nslcd.conf | ||||
|   #     regexp: "^#ssl" | ||||
|   #     line: "ssl start_tls" | ||||
|   - name: Reconfigure nslcd tls_reqcert | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/nslcd.conf | ||||
|       regexp: "^tls_reqcert" | ||||
|       line: "tls_reqcert allow" | ||||
|   - name: Restart nslcd service | ||||
|     ansible.builtin.service: | ||||
|       name: nslcd.service | ||||
|       state: restarted | ||||
|  | ||||
|   - name: Creating a file with content | ||||
|     copy: | ||||
|       dest: "/usr/local/bin/fetchSSHKeysFromLDAP" | ||||
|       content: | | ||||
|         #!/usr/bin/bash | ||||
|         ldapsearch  -x '(&(objectClass=ldapPublicKey)(cn='"$1"'))' 'sshPublicKey' |     sed -n '/^ /{H;d};/sshPublicKey:/x;$g;s/\n *//g;s/sshPublicKey: //gp'   | ||||
|       mode: '0755' | ||||
|   - name: Reconfigure sshd | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/ssh/sshd_config | ||||
|       regexp: "^#AuthorizedKeysCommand *" | ||||
|       line: "AuthorizedKeysCommand /usr/local/bin/fetchSSHKeysFromLDAP" | ||||
|  | ||||
|   - name: Reconfigure sshd | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/ssh/sshd_config | ||||
|       regexp: "^#AuthorizedKeysCommandUser *" | ||||
|       line: "AuthorizedKeysCommandUser root" | ||||
|   - name: Create a directory LDAP if it does not exist | ||||
|     ansible.builtin.file: | ||||
|       path: /etc/ldap/ | ||||
|       state: directory | ||||
|       mode: '0755' | ||||
|   - name: Creating a file with content | ||||
|     copy: | ||||
|       dest: "/etc/ldap/ldap.conf" | ||||
|       content: | | ||||
|         # | ||||
|         # LDAP Defaults | ||||
|         # | ||||
|  | ||||
|         # See ldap.conf(5) for details | ||||
|         # This file should be world readable but not world writable. | ||||
|  | ||||
|         BASE    dc=sectorq,dc=eu | ||||
|         URI     ldap://192.168.77.101:2389 | ||||
|  | ||||
|         #SIZELIMIT      12 | ||||
|         #TIMELIMIT      15 | ||||
|         #DEREF          never | ||||
|  | ||||
|         # TLS certificates (needed for GnuTLS) | ||||
|         TLS_CACERT      /etc/ssl/certs/ca-certificates.crt | ||||
|    | ||||
|   - name: Restart sshd service | ||||
|     ansible.builtin.service: | ||||
|       name: sshd.service | ||||
|       state: restarted | ||||
|   become: true | ||||
							
								
								
									
										4
									
								
								roles/matter-server/handlers/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/matter-server/handlers/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| - name: restart_matter_server | ||||
|   ansible.builtin.shell: docker restart matter-server | ||||
|  | ||||
|   become: true | ||||
							
								
								
									
										10
									
								
								roles/matter-server/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								roles/matter-server/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| - block: | ||||
|   - name: Reconfigure config | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: /etc/sysctl.conf | ||||
|       regexp: "^Unet.ipv4.igmp_max_memberships.*" | ||||
|       line: "net.ipv4.igmp_max_memberships = 75" | ||||
|   - name: Restart agent | ||||
|     ansible.builtin.shell: echo 76 > /proc/sys/net/ipv4/igmp_max_memberships | ||||
|     notify: restart_matter_server | ||||
|   become: true | ||||
							
								
								
									
										116
									
								
								roles/mqtt-srv/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								roles/mqtt-srv/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,116 @@ | ||||
| - block: | ||||
|   - name: include vault | ||||
|     ansible.builtin.include_vars: | ||||
|       file: ../jaydee.yml | ||||
|   - name: Delete content & directory | ||||
|     ansible.builtin.file: | ||||
|       state: absent | ||||
|       path: "{{ dest_folder }}" | ||||
|   - name: GIT pull | ||||
|     tags: | ||||
|       - git_pull | ||||
|     git: | ||||
|       repo: "https://{{ git_user | urlencode }}:{{ git_password_mqtt | urlencode }}@gitlab.sectorq.eu/jaydee/mqtt_srv.git" | ||||
|       dest: "{{ dest_folder }}" | ||||
|       update: yes | ||||
|       clone: yes | ||||
|       version: main | ||||
|   - debug: | ||||
|       msg: "{{ inventory_hostname }}" | ||||
|  | ||||
|   - name: Upload service config | ||||
|     ansible.builtin.copy: | ||||
|       src: "{{ dest_folder }}/mqtt_srv.service" | ||||
|       dest: /etc/systemd/system/mqtt_srv.service | ||||
|       remote_src: true | ||||
|     when: inventory_hostname != 'nas.home.lan'  | ||||
|  | ||||
|   - name: Upload service script | ||||
|     ansible.builtin.copy: | ||||
|       src: "{{ dest_folder }}/mqtt_srv.py" | ||||
|       dest: /usr/bin/mqtt_srv.py | ||||
|       mode: '755' | ||||
|       owner: root | ||||
|       remote_src: true | ||||
|     when: inventory_hostname != 'nas.home.lan' | ||||
|      | ||||
|   - name: Upload service script config | ||||
|     ansible.builtin.copy: | ||||
|       src: "{{ dest_folder }}/mqtt_srv.cfg" | ||||
|       dest: /etc/mqtt_srv/mqtt_srv.cfg | ||||
|       mode: '755' | ||||
|       owner: root | ||||
|       remote_src: true | ||||
|     when: inventory_hostname != 'nas.home.lan' | ||||
|  | ||||
|      | ||||
|   # - name: Upload service script1 | ||||
|   #   ansible.builtin.copy: | ||||
|   #     src: scripts/mqtt_srv.sh | ||||
|   #     dest: /jffs/scripts/mqtt_srv/ | ||||
|   #     mode: '755' | ||||
|   #     owner: admin | ||||
|   #   when: inventory_hostname in groups['router'] | ||||
|   #   become: false | ||||
|  | ||||
|  | ||||
|   # - name: Upload service script | ||||
|   #   ansible.builtin.copy: | ||||
|   #     src: scripts/mqtt_srv.py | ||||
|   #     dest: /jffs/scripts/mqtt_srv/ | ||||
|   #     mode: '755' | ||||
|   #     owner: admin | ||||
|   #   when: inventory_hostname in groups['router'] | ||||
|   #   become: false | ||||
|  | ||||
|   - name: Upload service script1 | ||||
|     ansible.builtin.copy: | ||||
|       src: "{{ dest_folder }}/mqtt_srv.sh" | ||||
|       dest: /etc/init.d/ | ||||
|       mode: '755' | ||||
|       owner: admin | ||||
|       remote_src: true | ||||
|     when: inventory_hostname == 'nas.home.lan' | ||||
|  | ||||
|   - debug: | ||||
|       msg: "{{ dest_folder }}" | ||||
|   - name: Upload service script2 | ||||
|     ansible.builtin.copy: | ||||
|       src: "{{ dest_folder }}/mqtt_srv.py" | ||||
|       dest: /usr/bin/mqtt_srv.py | ||||
|       mode: '755' | ||||
|       owner: admin | ||||
|       remote_src: true | ||||
|     when: inventory_hostname == 'nas.home.lan' | ||||
|  | ||||
|   - name: Install bottle python package | ||||
|     ansible.builtin.shell: pip  install {{ item }}  --break-system-packages | ||||
|     loop: | ||||
|       - paho-mqtt | ||||
|       - getmac | ||||
|       - ping3 | ||||
|       - psutil | ||||
|       - autorandr | ||||
|     when: inventory_hostname != 'nas.home.lan' | ||||
|  | ||||
|   - name: Just force systemd to reread configs (2.4 and above) | ||||
|     ansible.builtin.systemd: | ||||
|       daemon_reload: true | ||||
|     when: inventory_hostname != 'nas.home.lan' | ||||
|  | ||||
|  | ||||
|  | ||||
|   - name: Restart mqtt_srv service | ||||
|     ansible.builtin.service: | ||||
|       name: mqtt_srv.service | ||||
|       state: restarted | ||||
|       enabled: true | ||||
|     when: inventory_hostname != 'nas.home.lan' | ||||
|  | ||||
|   - name: Restart mqtt service | ||||
|     ansible.builtin.shell: "(/etc/init.d/mqtt_srv.sh restart >/dev/null 2>&1 &)" | ||||
|     async: 10 | ||||
|     poll: 0 | ||||
|     when: inventory_hostname == 'nas.home.lan' | ||||
|  | ||||
|   become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" | ||||
							
								
								
									
										1
									
								
								roles/mqtt-srv/vars/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/mqtt-srv/vars/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| dest_folder: "/tmp/ans_repo" | ||||
							
								
								
									
										9
									
								
								roles/timeshift/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								roles/timeshift/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| - name: Install timeshift packages | ||||
|   ansible.builtin.apt: | ||||
|     name:  | ||||
|       - timeshift | ||||
|     update_cache: yes | ||||
|   become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}" | ||||
|   ignore_errors: true | ||||
|   when: inventory_hostname != 'nas.home.lan' | ||||
|  | ||||
							
								
								
									
										154
									
								
								roles/zabbix-agent/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								roles/zabbix-agent/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,154 @@ | ||||
| - block: | ||||
|   - name: Get config for not nas | ||||
|     ansible.builtin.set_fact: | ||||
|       zabbix_agent_cfg: "/etc/zabbix/zabbix_agent2.conf" | ||||
|     when: inventory_hostname != 'nas.home.lan' | ||||
|      | ||||
|   - name: Get config for nas | ||||
|     ansible.builtin.set_fact: | ||||
|       zabbix_agent_cfg: "/opt/ZabbixAgent/etc/zabbix_agentd.conf" | ||||
|     when: inventory_hostname  == 'nas.home.lan' | ||||
|  | ||||
|   - name: Print all available facts | ||||
|     ansible.builtin.debug: | ||||
|       msg: "{{ false if inventory_hostname == 'nas.home.lan' else true }}" | ||||
|  | ||||
|   - name: Print all available facts | ||||
|     ansible.builtin.debug: | ||||
|       var: ansible_facts.architecture | ||||
|   - name: Print all available facts | ||||
|     ansible.builtin.debug: | ||||
|       var: ansible_distribution | ||||
|   - name: Print all available facts | ||||
|     ansible.builtin.debug: | ||||
|       var: ansible_distribution_major_version | ||||
|   # - name: Upload zabbix package | ||||
|   #   ansible.builtin.copy: | ||||
|   #     src: packages/zabbix-release_6.4-1+ubuntu22.04_all.deb | ||||
|   #     dest: /tmp/ | ||||
|   - name: Install a .deb package from the internet11 | ||||
|     ansible.builtin.apt: | ||||
|       deb: https://repo.zabbix.com/zabbix/6.4/ubuntu-arm64/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb | ||||
|     when: | ||||
|       - ansible_facts.architecture != "armv7l" and  ( ansible_distribution == "Ubuntu" or ansible_distribution == "Linux Mint" ) | ||||
|  | ||||
|   - name: Install a .deb package from the internet2 | ||||
|     ansible.builtin.apt: | ||||
|       #deb: https://repo.zabbix.com/zabbix/6.4/raspbian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb | ||||
|       deb: https://repo.zabbix.com/zabbix/7.0/raspbian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian11_all.deb | ||||
|     retries: 5 | ||||
|     delay: 5 | ||||
|     when: | ||||
|       - ansible_facts.architecture == "armv7l" or ansible_facts.architecture == "aarch64" | ||||
|  | ||||
|     ignore_errors: true | ||||
|  | ||||
|   - name: Install a .deb package from the internet3 | ||||
|     ansible.builtin.apt: | ||||
|       deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb | ||||
|        | ||||
|     when: | ||||
|       - ansible_facts.architecture != "armv7l"  and ansible_distribution == "Debian"  and ansible_distribution_major_version  == "11" | ||||
|      | ||||
|   - name: Install a .deb package from the internet4 | ||||
|     ansible.builtin.apt: | ||||
|       #deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb | ||||
|       deb: https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian12_all.deb | ||||
|     when: | ||||
|       - ansible_facts.architecture != "armv7l" and  ansible_facts.architecture != "aarch64" and ansible_distribution == "Debian"  and ansible_distribution_major_version  == "12" | ||||
|     ignore_errors: true | ||||
|  | ||||
|   # - name: Install a .deb package localy | ||||
|   #   ansible.builtin.apt: | ||||
|   #     deb: /tmp/zabbix-release_6.4-1+ubuntu22.04_all.deb | ||||
|   - name: Install zabbix packages | ||||
|     ansible.builtin.apt: | ||||
|       name:  | ||||
|         - zabbix-agent2 | ||||
|         - zabbix-agent2-plugin-mongodb | ||||
|         - zabbix-agent2-plugin-postgresql | ||||
|         # - zabbix-agent2-plugin-mysql | ||||
|       update_cache: yes | ||||
|     ignore_errors: true | ||||
|     when: inventory_hostname != 'nas.home.lan' | ||||
|  | ||||
|   - name: Reconfigure zabbix agent Server | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: "{{ zabbix_agent_cfg }}" | ||||
|       regexp: "^Server=.*" | ||||
|       insertafter: '^# Server=' | ||||
|       line: "Server=192.168.77.0/24,192.168.80.0/28" | ||||
|     become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}" | ||||
|  | ||||
|   - name: Reconfigure zabbix agent ServerActive | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: "{{ zabbix_agent_cfg }}" | ||||
|       regexp: "^ServerActive=.*" | ||||
|       line: "ServerActive={{ ZABBIX_SERVER }}" | ||||
|  | ||||
|   - name: Reconfigure zabbix agent ListenPort | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: "{{ zabbix_agent_cfg }}" | ||||
|       regexp: "^ListenPort=.*" | ||||
|       line: "ListenPort=10050" | ||||
|   # - name: Reconfigure zabbix agent ListenIP | ||||
|   #   ansible.builtin.lineinfile: | ||||
|   #     path: /"{{ zabbix_agent_cfg }}" | ||||
|   #     regexp: "^ListenIP=.*" | ||||
|   #     line: "ListenIP=0.0.0.0" | ||||
|  | ||||
|   - name: Reconfigure zabbix-agent2 hostname | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: "{{ zabbix_agent_cfg }}" | ||||
|       regexp: "^Hostname=.*" | ||||
|       line: "Hostname={{ inventory_hostname }}" | ||||
|  | ||||
|   - name: Reconfigure zabbix-agent2 config | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: "{{ zabbix_agent_cfg }}" | ||||
|       insertafter: '^# UserParameter=' | ||||
|       regexp: "^UserParameter=system.certs.*" | ||||
|       line: "UserParameter=system.certs,python3 /share/ZFS530_DATA/.qpkg/ZabbixAgent/cert_check2.py" | ||||
|     when: inventory_hostname == 'nas.home.lan' or inventory_hostname == 'm-server.home.lan'  | ||||
|  | ||||
|   - name: Reconfigure zabbix-agent2 config | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: "{{ zabbix_agent_cfg }}" | ||||
|       insertafter: '^# UserParameter=' | ||||
|       line: "UserParameter=rpi.hw.temp,/usr/bin/vcgencmd measure_temp" | ||||
|     when: inventory_hostname == 'rpi5.home.lan' | ||||
|  | ||||
|   - name: Reconfigure zabbix-agent2 hostname | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: "{{ zabbix_agent_cfg }}" | ||||
|       regexp: "^HostMetadata=.*" | ||||
|       insertafter: '^# HostMetadata=' | ||||
|       line: "HostMetadata=linux;jaydee" | ||||
|   - name: Reconfigure zabbix-agent2 hostname | ||||
|     ansible.builtin.lineinfile: | ||||
|       path: "{{ zabbix_agent_cfg }}" | ||||
|       regexp: "^HostMetadata=.*" | ||||
|       insertafter: '^# HostMetadata=' | ||||
|       line: "HostMetadata=server;jaydee" | ||||
|     when: inventory_hostname == 'nas.home.lan' or inventory_hostname == 'm-server.home.lan'  | ||||
|  | ||||
|   - name: Add the user 'to group video | ||||
|     ansible.builtin.user: | ||||
|       name: zabbix | ||||
|       groups: video | ||||
|       append: yes | ||||
|     when: inventory_hostname != 'nas.home.lan' | ||||
|  | ||||
|   - name: Restart zabbix-agent2 service | ||||
|     ansible.builtin.service: | ||||
|       name: zabbix-agent2.service | ||||
|       state: restarted | ||||
|       enabled: true | ||||
|     when: inventory_hostname != 'nas.home.lan' | ||||
|  | ||||
|   - name: Restart agent | ||||
|     ansible.builtin.shell: /etc/init.d/ZabbixAgent.sh restart | ||||
|     when: inventory_hostname == 'nas.home.lan' | ||||
|  | ||||
|  | ||||
|   become: true | ||||
							
								
								
									
										1
									
								
								roles/zabbix-agent/vars/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/zabbix-agent/vars/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| ZABBIX_SERVER: "zabbix.home.lan" | ||||
		Reference in New Issue
	
	Block a user
	 jaydee
					jaydee