adsasdasd

This commit is contained in:
2024-06-21 11:30:50 +02:00
parent 9c8402d6f0
commit 33d1956759
11 changed files with 315 additions and 13 deletions

1
Enter your MFA token: Normal file
View File

@@ -0,0 +1 @@
MOuARJXBfnkW,GN0o,aD

19
ca.crt Normal file
View File

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDCTCCAfGgAwIBAgIUc9ylGQRm4foAsAratu/jlMZvTE4wDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJWmFiYml4IENBMB4XDTI0MDYxNDEzNDkzOVoXDTI3MDQw
NDEzNDkzOVowFDESMBAGA1UEAwwJWmFiYml4IENBMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAt/L+9V4QmDmmyqGwMi9MiwguOFJkkBiJckV9tWib/ePH
vv6kO/DiDNWORkW5NDBqpi7711boM1jVokLeVmZOgHaDYfmdInpR48V/2QpBQphD
BEb/aL1T7L9kkLmBAiIfb3OuZcB/EJht3yjJXwrVdX41wXBUF0V1HfGTH4cw5z9R
0qLtHypZLgMThJifxSH5yzZ96tEydAPrW0lwMGwNEcfaqEMfvKDs5y4sCRxBQIH9
mXyWWGSHUk4mw7lUTYm9cMtcUd+XMziS812p5G2HGD0PFwAPIUc+j1AWzO+PdxJB
x6wYLgrDtepIDTf1TP5mZTdTINuIUyFr99ZLLp1ddQIDAQABo1MwUTAdBgNVHQ4E
FgQUFUDTZWyjQLWcXAe+EoJM6Gy1Sh4wHwYDVR0jBBgwFoAUFUDTZWyjQLWcXAe+
EoJM6Gy1Sh4wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEARerR
innFA7z3oVIPfVobsuHf86iQBFAlgOXLllHd02ahv+hSc10VGqlwPELKoopZcPYL
fSib6jaMjq1p7ZZkxq5wNh0+ftoyzfnk3DULMN/ECdtxCDQG2xF2sstlW9iPMQH/
UcJzrxSOLiRm3Yc+8R4CjWmkUNpUUS+1ii482gY42iswwePBVMDOVS6AIpcdRLFi
5q7noAsDaxmxPLzjn0LObk8hKxo1J1DWAxSVn4FdHxmZ5EUlBji8SInqraCi1ZdN
tyQpSzSfvcHgTZHjjwjeY/+jaDP1PHkRs1ltj/2O5eUHIMGH2EZPXB5IKgLwPYnU
sVaRbC0FU9OzCYsm4w==
-----END CERTIFICATE-----

28
ca.key Normal file
View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC38v71XhCYOabK
obAyL0yLCC44UmSQGIlyRX21aJv948e+/qQ78OIM1Y5GRbk0MGqmLvvXVugzWNWi
Qt5WZk6AdoNh+Z0ielHjxX/ZCkFCmEMERv9ovVPsv2SQuYECIh9vc65lwH8QmG3f
KMlfCtV1fjXBcFQXRXUd8ZMfhzDnP1HSou0fKlkuAxOEmJ/FIfnLNn3q0TJ0A+tb
SXAwbA0Rx9qoQx+8oOznLiwJHEFAgf2ZfJZYZIdSTibDuVRNib1wy1xR35czOJLz
XankbYcYPQ8XAA8hRz6PUBbM7493EkHHrBguCsO16kgNN/VM/mZlN1Mg24hTIWv3
1ksunV11AgMBAAECggEAE2MjvoIfvx+CZgRlEOD90QB3eJ2sdihz4gyTa3l/SWLG
tGlbr2qbtI0UffEOzEKXFvVIO0GwXusLtxqTmukU+IKlJcAccNwSAe7YouwrBSUN
mSePdz9PF1pzs7Itd+dXR1SaqqQ/cCUUnWrL0H3Qkh3PdhgL8Njz90g1AKNrws9y
aBBX2f4EF+RGpbXrymks10+Ll/8y5VFIazxXEc+ew2+kT0j2bkLl80YwdesEAZ3E
YkxmivEaRJPBErW4LyVPKqSLYSbr5IHovELGY3P7fw4sX9j2JFLGFa5DHULY7AmM
eIS5sIusegYevNAt87QnwFXpB2Q5y0uKzVXwDmSv0QKBgQDDrHUIyd/E0a8qhJTO
1mEjvQJV9SOFMqmrmBhCIptIt5Mq3onSSRI5pvAplkl3Qz/IESSHdMWzNPyg67NG
E3fTDh3EMxqpUrLPteEFnmoyJraYCCKbhh4Fp9fAhUmH+3tOnQAmgtJiJ0FV318x
QMujJOs9tn+mjGZqKSe+WOFGkQKBgQDwqS+b9MkUeHtJobwQJiKbYtS248HTALo5
Em5xMkTJ1eVrXTHZgJdbEEc1/T5UJOfGzlET6F5JJFmpaBpCMYb+ZEhR8b7lR/sH
WHMQlIjjcClbffdLN0fbnDrGSCs5n5QTxRqWH6g8IqWehbAd8BUYiEafOKFPyUs7
ca7g4WHCpQKBgCdm+eY8KIhMpRZNvl1sRAFbVTYT+AQhcJMyPGhM6bIZ7VOrnlsv
BbGAUUo+jiqq6xQRh6aTOCBfIiQRcndBAlcIt6vDkrHYClPTTy2/eakBrLEuqjFh
L3h6FPMao/TzCiCJcvdOTqkfOIPfSB716ku+6nPx5QCXsyPbh7pH0Y1RAoGAFVa7
DPYIelMwg1fe6AOpn+OEfu70+bOfz32t40WUydy4aeuqhuGbCg0Ic2YQB7/5+SvE
DqLU8WFSve2oHmRr1tSngPSRe50FSiJymW7CMIB6ek1SBw5Qxc01fO1bP9HBfHtG
nzcRYLulucea1Ry7kiBLOsT3sK5liFDNM81oMK0CgYAowvo8fGU3T1FbAidrEZyt
llcF30YMnciCE7/Uu1CjHnRLiKHaz28djA9rsoYHvC5i/jbUL0ekejawkWCmzd8y
969+V2kV4Rrb0HAO6jLCuVOoRatFV+mNApljjHk+4c2tIT8RbNTxv50PmUEHuViW
+uUBxvXGib9cXWvWB0AEbQ==
-----END PRIVATE KEY-----

View File

@@ -6,15 +6,30 @@ all:
ubu.localdomain: ubu.localdomain:
ansible_host: 192.168.1.23 ansible_host: 192.168.1.23
ansible_user: alex ansible_user: alex
ansible_ssh_pass: "Aase#1234!"
ansible_become_pass: "Aase#1234!"
zabbix_host_groups: "Linux servers"
zabbix_link_template: "Template OS Linux"
zabbix_agent_psk: "1d3b2f634a975a68df1ac903daa4d10d5b00a3d95c33463cffb402f5e39be75f"
raspii.localdomain: raspii.localdomain:
ansible_host: 192.168.1.24 ansible_host: 192.168.1.24
ansible_user: alex ansible_user: alex
ansible_python_interpreter: /usr/bin/python3 ansible_python_interpreter: /usr/bin/python3
ansible_ssh_pass: "Aase#1234!"
ansible_become_pass: "Aase#1234!"
zabbix_host_groups: "Linux servers"
zabbix_link_template: "Template OS Linux"
zabbix_agent_psk: "1d3b2f634a975a68df1ac903daa4d10d5b00a3d95c33463cffb402f5e39be75f"
proxmox.localdomain: proxmox.localdomain:
ansible_host: 192.168.1.162 ansible_host: 192.168.1.162
ansible_user: root ansible_user: root
ansible_password: Aase#1234! ansible_password: Aase#1234!
ansible_python_interpreter: /root/proxmoxer_env/bin/python ansible_python_interpreter: /root/proxmoxer_env/bin/python
ansible_ssh_pass: "Aase#1234!"
ansible_become_pass: "Aase#1234!"
zabbix_host_groups: "Linux servers"
zabbix_link_template: "Template OS Linux"
zabbix_agent_psk: "1d3b2f634a975a68df1ac903daa4d10d5b00a3d95c33463cffb402f5e39be75f"
vars: vars:
proxmox_host: 192.168.1.162 proxmox_host: 192.168.1.162
proxmox_user: root@pam proxmox_user: root@pam
@@ -29,6 +44,11 @@ all:
ansible_host: 192.168.1.144 ansible_host: 192.168.1.144
ansible_user: alex ansible_user: alex
ansible_python_interpreter: /usr/bin/python3 ansible_python_interpreter: /usr/bin/python3
ansible_ssh_pass: "Aase#1234!"
ansible_become_pass: "Aase#1234!"
zabbix_host_groups: "Linux servers"
zabbix_link_template: "Template OS Linux"
zabbix_agent_psk: "1d3b2f634a975a68df1ac903daa4d10d5b00a3d95c33463cffb402f5e39be75f"
alex-ds414.localdomain: alex-ds414.localdomain:
ansible_host: 192.168.1.113 ansible_host: 192.168.1.113
ansible_user: alexadmin ansible_user: alexadmin

View File

@@ -0,0 +1,95 @@
#!/usr/bin/python
from ansible.module_utils.basic import AnsibleModule
import requests
import json
import os
import pickle
def get_portforwarding_rules(controller_url, username, password, site_id, mfa_token, cookies_file):
# Disable SSL warnings
requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)
# Create session
session = requests.Session()
# Load cookies if available
if os.path.exists(cookies_file):
with open(cookies_file, 'rb') as f:
session.cookies.update(pickle.load(f))
# Test if the session is still valid by checking an endpoint
test_url = f"{controller_url}/api/s/{site_id}/stat/sta"
test_response = session.get(test_url, verify=False)
if test_response.status_code != 200:
os.remove(cookies_file) # Remove expired cookies
else:
# Initial login URL
login_url = f"{controller_url}/api/login"
# Combine password and MFA token
combined_password = f"{password}|{mfa_token}"
# Debugging: Print combined password
print(f"Combined Password: {combined_password}")
# Login payload
login_data = {
"username": username,
"password": combined_password
}
# Login headers
headers = {
"Content-Type": "application/json"
}
# Attempt to log in
response = session.post(login_url, json=login_data, headers=headers, verify=False)
if response.status_code == 200:
# Save cookies to file
with open(cookies_file, 'wb') as f:
pickle.dump(session.cookies, f)
else:
return {"failed": True, "msg": "Login failed.", "response": response.json()}
# API endpoint for fetching port forwarding rules
portforwarding_url = f"{controller_url}/api/s/{site_id}/rest/portforward"
# Fetch the port forwarding rules
portforwarding_response = session.get(portforwarding_url, verify=False)
portforwarding_response.raise_for_status()
portforwarding_rules = portforwarding_response.json()
return {"failed": False, "portforwarding_rules": portforwarding_rules}
def main():
module_args = dict(
controller_url=dict(type='str', required=True),
username=dict(type='str', required=True),
password=dict(type='str', required=True),
site_id=dict(type='str', required=True),
mfa_token=dict(type='str', required=True),
cookies_file=dict(type='str', default="unifi_session_cookies.pkl")
)
module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)
result = get_portforwarding_rules(
module.params['controller_url'],
module.params['username'],
module.params['password'],
module.params['site_id'],
module.params['mfa_token'],
module.params['cookies_file']
)
if result['failed']:
module.fail_json(msg=result['msg'], response=result.get('response', None))
else:
module.exit_json(changed=False, portforwarding_rules=result['portforwarding_rules'])
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,17 @@
---
- name: Retrieve and display UniFi port forwarding rules
hosts: localhost
gather_facts: no
tasks:
- name: Get port forwarding rules
unifi_portforward_module:
controller_url: "https://192.168.1.237:8443"
username: "alex_mormor@hotmail.com"
password: "aaseiswild123"
site_id: "default"
mfa_token: "{{ lookup('password', 'Enter your MFA token: ') }}"
register: result
- name: Display port forwarding rules
debug:
var: result.portforwarding_rules

View File

@@ -1,17 +1,17 @@
--- ---
# File: unifi-dhcp-clients-list.yml - name: Retrieve and display UniFi port forwarding rules
- name: Fetch and List DHCP Clients from UniFi Controller
hosts: localhost hosts: localhost
gather_facts: no gather_facts: no
tasks:
- name: Get port forwarding rules
unifi_portforward_module:
controller_url: "https://192.168.1.237:8443"
username: "alex_mormor@hotmail.com"
password: "aaseiswild123"
site_id: "default"
mfa_token: "{{ lookup('password', 'Enter your MFA token: ') }}"
register: result
vars_files: - name: Display port forwarding rules
- credentials.yml debug:
var: result.portforwarding_rules
vars:
unifi_baseurl: "https://your-unifi-controller:8443"
unifi_site_id: "default"
unifi_validate_certs: no
roles:
- unifi_dhcp_clients_list

17
zabbix_agentd.crt Normal file
View File

@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICsjCCAZoCFB8dm3coMlzO2OsOCmcmWRXDCFd6MA0GCSqGSIb3DQEBCwUAMBQx
EjAQBgNVBAMMCVphYmJpeCBDQTAeFw0yNDA2MTQxMzQ5NDBaFw0yNTEwMjcxMzQ5
NDBaMBcxFTATBgNVBAMMDFphYmJpeCBBZ2VudDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBALnIChD8wP0NHHq5WS5XWnpkkgldR/83obcDXzddTNH0CMbq
rfWIbcbbCFp9LKYmgjJIOV49WtIc1ycGCDUDsvaUkfGxIYsLia7PM0GWtNa2fLK4
mw6mQXrBfzgLyCEGbDH2VTSS9I7QNGQrg7TNbiSjs9oiDmcv3Ba3ygytIM1xC3sh
z8rCx1Q7YBeWNlmsV1eSZnCdbm3r5WqPp8+nYL7cKQDiBsqSiCJOancGQnrd/Sv1
O0wtAdqxZu6X7px1ZLzqstLXlYyPzA08l3yKEROsm8k0eJeNx3ATgZEsli7mP3D1
z6PooiXkd4eTZ6o4uY3RVpAS1fhorAqADzKkv0sCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAVMaVEzf9PVch7Vu/cGGdecNYdJTdMONv4rmkvtYvafLEkUJzMhqJ98KZ
RuDwq0IZJJAlVMpAvBOOq5gNG3+O3L2xGypg7L5MIEUoJMDpSMv2z0/L7yd6D5Mc
1HOX3QP/tX5YgU/L5sjmBIBsqWvEfyhF2Uh3omYq+eDQpumaQXwarFxtAvbyeH5N
4ks8vzZl6zHBNtOnQ4pBJbf7xi6ianpzuQlI0laigcZ0IUtmRFN/wVCE2Ls28X52
TJtKiwzgXvXuwBJcJmXNSnG9w1mzj7ayO4TzFHUCUGNVeJM7eQNmiPoO6MSU8LYc
sPQgrknDKuZYeYjVGoVCctG9kz613Q==
-----END CERTIFICATE-----

15
zabbix_agentd.csr Normal file
View File

@@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE REQUEST-----
MIICXDCCAUQCAQAwFzEVMBMGA1UEAwwMWmFiYml4IEFnZW50MIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAucgKEPzA/Q0cerlZLldaemSSCV1H/zehtwNf
N11M0fQIxuqt9YhtxtsIWn0spiaCMkg5Xj1a0hzXJwYINQOy9pSR8bEhiwuJrs8z
QZa01rZ8sribDqZBesF/OAvIIQZsMfZVNJL0jtA0ZCuDtM1uJKOz2iIOZy/cFrfK
DK0gzXELeyHPysLHVDtgF5Y2WaxXV5JmcJ1ubevlao+nz6dgvtwpAOIGypKIIk5q
dwZCet39K/U7TC0B2rFm7pfunHVkvOqy0teVjI/MDTyXfIoRE6ybyTR4l43HcBOB
kSyWLuY/cPXPo+iiJeR3h5Nnqji5jdFWkBLV+GisCoAPMqS/SwIDAQABoAAwDQYJ
KoZIhvcNAQELBQADggEBAAKVz/MQlVXt5b39eD/djiycGaWKXhe2MsYGOzHVIj2C
I4I/NcSLQb9Uj9tdJEFwg2DnWSBTE0OZdtfZ8YJGABhz85xQL9ykBz9ANx4uYHZz
GfIAQQBYOi8RCS5iYsNLbY6EmWH6mSAusrjwWhK92dBidtlf78BPktXvHzSgXg2T
wEubUn+15ENB9PL3Oi4UfBMQNCDm5CvXvd+VnAdbhUd5rUj7eatRdirNTJgjypN0
SWbMSu7OCaaAVQsFoOOpF9LUFFiUpn6N7wHVIAo3pm47QjgdTh31G5UiVAjf35/t
LHCNl4iRV9IQhQvkK0zlJXl5/jf2bhBi8dO+xm9JOlA=
-----END CERTIFICATE REQUEST-----

28
zabbix_agentd.key Normal file
View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC5yAoQ/MD9DRx6
uVkuV1p6ZJIJXUf/N6G3A183XUzR9AjG6q31iG3G2whafSymJoIySDlePVrSHNcn
Bgg1A7L2lJHxsSGLC4muzzNBlrTWtnyyuJsOpkF6wX84C8ghBmwx9lU0kvSO0DRk
K4O0zW4ko7PaIg5nL9wWt8oMrSDNcQt7Ic/KwsdUO2AXljZZrFdXkmZwnW5t6+Vq
j6fPp2C+3CkA4gbKkogiTmp3BkJ63f0r9TtMLQHasWbul+6cdWS86rLS15WMj8wN
PJd8ihETrJvJNHiXjcdwE4GRLJYu5j9w9c+j6KIl5HeHk2eqOLmN0VaQEtX4aKwK
gA8ypL9LAgMBAAECggEAKjiKAR5QBbJrHIDvAZccmuAsSDCI4jmUaPE9PGnZwYVC
UWKYMkrVF/JDTb1Q3lm2ERNU5lPvRf0D8HxwdQvoKh3NpS3qP51Zpv6z2V4Urw89
+6f0pTmne+xpqyUSUF8TS6994brcFXC/11wETJy7QVxqzVIcD9tSm18dbhASel2p
T1kxrMm5oV2j2ey49Z6T2nMgLbv+ts8t5oO5JPCge6qvwzvZn9hif3Rre4egK73e
5Ixt23Nk7sx/E1G2uT6ZMN61DbvQa/c241MKfG4wpZU/pzWdORZSNo2s6zz0CPk3
vZuH+aLnXk6ZfwcJJ2naEzeJbZKx/A63CuEPUIQEwQKBgQDkwlglhHGONU+a8ZBx
uyWQU93G+rOy6ThHFiGuOwCYt1U/B0Zm7iiP2HAWNuiaX2Ntm/WjEvbYRpS5fULw
+qt0Y2AENoVB7bL/Ph77YedFfoW2G4PZ3NXsLJ9Hz0cCbkdfbywSGsxaH3RdiEhu
DFv8Yi+OsvRe2NpaG1DBeqeDkQKBgQDP54fiwVNqgC8Xn+kvqTm3Awkb40uYEAfL
MjKChjenIFOZms4KKFnXbXdswvebd75xaEVn5HypWg9x3y9ZFzrSsTPzu9RnWzdd
5ue+1UmSAZxfvZ5kp+NJJjxxJ/8YyjCnCAXNiOxpjjmD84bslJA550xyoDyNWg1j
4r0i/w5vGwKBgQCnQ07OR9P75hEJut0hu3QQ3rGHXyHrjElg+NaxnWSnRU2oYzpf
4n14CAqUw5s53MtHhsSJc0FYC+uM4QEEUFTzKgI3smGnPhUmOhbPOduvXX6JE/9J
WgZ0xH/GMtG5/kZjilcP+dY3g05DYXWMOa88j9I0Jbc2bprhTZ2zimpXcQKBgQCu
iOaw3C+VFutx39M5Kc3D8A5zlQtfKwX/9bIllVufOCo2p5kVOe7CRameasbHg20j
c6/gmhZ1bZ/Nrtnm5vOA8TZ2BVc5NYBzmmcu84uBwUxvq5YPVkoenLTdIgCr5QGX
F8sXUz11F+r89TJt5gJ2OdEZ4Z8z40eedTjm6kxJxQKBgQDZ3OoIi+sF//fTI3dg
ULBKrqYaVPhgBnC5ItVeDvJD8tm/YghgxhBcLXLFvZIwy2WK00CEP2zKEczA5AKz
w/o/krgsWYpI7PGZW0xGAgY79ahXL7OVl/z+OTCgL17rDGZvvcIMZelYaHjpfS4g
Bm3u2KZwUZN4sS+79kQ1Ejw24Q==
-----END PRIVATE KEY-----

62
zabbix_network.yml Normal file
View File

@@ -0,0 +1,62 @@
---
- name: Ensure Zabbix agent network configuration is correct
hosts: all
become: true
tasks:
- name: Open firewall port 10050 for Zabbix agent (Debian)
ansible.builtin.ufw:
rule: allow
port: 10050
proto: tcp
when: ansible_os_family == "Debian"
- name: Open firewall port 10050 for Zabbix agent (RedHat)
firewalld:
service: zabbix-agent
port: 10050/tcp
permanent: true
state: enabled
immediate: true
when: ansible_os_family == "RedHat"
- name: Restart firewall to apply changes (Debian)
ansible.builtin.service:
name: ufw
state: restarted
when: ansible_os_family == "Debian"
- name: Restart firewalld to apply changes (RedHat)
ansible.builtin.service:
name: firewalld
state: restarted
when: ansible_os_family == "RedHat"
- name: Create directory for Zabbix agent configuration if it does not exist
ansible.builtin.file:
path: /etc/zabbix/zabbix_agentd.d
state: directory
- name: Create directory for Zabbix agent logs if it does not exist
ansible.builtin.file:
path: /var/log/zabbix
state: directory
- name: Ensure /var/log/zabbix directory is owned by zabbix user
ansible.builtin.file:
path: /var/log/zabbix
owner: zabbix
group: zabbix
state: directory
- name: Ensure Zabbix agent is running
ansible.builtin.service:
name: zabbix-agent
state: restarted
- name: Check Zabbix agent status
ansible.builtin.command: systemctl status zabbix-agent
register: zabbix_status
- name: Debug Zabbix agent status
ansible.builtin.debug:
msg: "{{ zabbix_status.stdout_lines }}"