This commit is contained in:
2025-02-03 13:35:49 +01:00
parent 34a375c50d
commit da594e8e8c
4 changed files with 729 additions and 41 deletions

View File

@@ -0,0 +1,10 @@
jobs:
Deploy-DotEnv-To-Devel:
runs-on: shell
defaults:
run:
shell: bash
steps:
- name: write secret to dotenv
run: |
echo "Hello World !!"

View File

@@ -1,6 +1,6 @@
[defaults] [defaults]
#inventory = /home/user06/hosts #inventory = /home/user06/hosts
inventory = ./main.py inventory = ./ansible_inv_main.py
ansible_managed = Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S on {host} ansible_managed = Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S on {host}
private_key_file = /home/jonnybravo/.ssh/ansible-test private_key_file = /home/jonnybravo/.ssh/ansible-test
gathering = smart gathering = smart

View File

@@ -1,7 +1,14 @@
#! /usr/bin/env python3.12 #! /usr/bin/env python3.12
import csv
import errno
import json
import os
import socket
import sys
import scapy.all as scapy import scapy.all as scapy
import json, socket, csv, os, errno, sys
def scan(ip): def scan(ip):
arp_request = scapy.ARP(pdst=ip) arp_request = scapy.ARP(pdst=ip)
@@ -10,28 +17,31 @@ def scan(ip):
answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0] answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0]
results = [] results = []
for element in answered_list: for element in answered_list:
result = {"ip": element[1].psrc, "mac": element[1].hwsrc, 'hostname': socket.gethostbyaddr(element[1].psrc)[0]} result = {
"ip": element[1].psrc,
"mac": element[1].hwsrc,
"hostname": socket.gethostbyaddr(element[1].psrc)[0],
}
results.append(result) results.append(result)
return results return results
def port_open(address: str, dest_port=22) -> bool: def port_open(address: str, dest_port=22) -> bool:
#result = sock.connect_ex(('ras-dan-01.local',22)) # result = sock.connect_ex(('ras-dan-01.local',22))
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.settimeout(5) sock.settimeout(5)
result = sock.connect_ex((address,dest_port)) result = sock.connect_ex((address, dest_port))
if result == 0: if result == 0:
return True return True
else: else:
return False return False
def scan_csv(csvfile=str, colm="hostname"): def scan_csv(csvfile=str, colm="hostname"):
if os.path.exists(csvfile): if os.path.exists(csvfile):
hostlist = [] hostlist = []
with open(csvfile) as csv_file: with open(csvfile) as csv_file:
csv_reader = csv.DictReader(csv_file, delimiter=',') csv_reader = csv.DictReader(csv_file, delimiter=",")
for count, row in enumerate(csv_reader, 1): for count, row in enumerate(csv_reader, 1):
hostlist.append(row[colm]) hostlist.append(row[colm])
else: else:
@@ -39,30 +49,29 @@ def scan_csv(csvfile=str, colm="hostname"):
return tuple(hostlist) return tuple(hostlist)
def create_ip_list(target_ip=["192.168.50.1/24"]): def create_ip_list(target_ip=["192.168.50.1/24"]):
only_ip_list = [] only_ip_list = []
for ip_rage in target_ip: for ip_rage in target_ip:
for i in scan(ip_rage): for i in scan(ip_rage):
if i['hostname'] != ".": if i["hostname"] != ".":
scan_name = (i['hostname']) scan_name = i["hostname"]
else: else:
scan_name = (i['ip']) scan_name = i["ip"]
#print(scan_name) # print(scan_name)
#print(port_open(address=scan_name)) # print(port_open(address=scan_name))
if port_open(address=scan_name): if port_open(address=scan_name):
only_ip_list.append(scan_name) only_ip_list.append(scan_name)
return tuple(only_ip_list) return tuple(only_ip_list)
if __name__ == "__main__": if __name__ == "__main__":
#if len(sys.argv) == 1: # if len(sys.argv) == 1:
ip_list = create_ip_list() ip_list = create_ip_list()
man_list = scan_csv(csvfile="hostname_manuel.csv") man_list = scan_csv(
csvfile=os.path.dirname(os.path.realpath(__file__)) + "/hostname_manuel.csv"
)
output = { output = {
"_meta": { "_meta": {
"hostvars": { "hostvars": {
@@ -76,18 +85,18 @@ if __name__ == "__main__":
"vars": { "vars": {
"ansible_user": "jonnybravo", "ansible_user": "jonnybravo",
"ansible_python_interpreter": "/usr/bin/python3", "ansible_python_interpreter": "/usr/bin/python3",
"ansible_ssh_private_key_file": "/home/jonnybravo/.ssh/ansible-test" "ansible_ssh_private_key_file": "/home/jonnybravo/.ssh/ansible-test",
} },
}, },
"csv_scan": { "csv_scan": {
"hosts": man_list, "hosts": man_list,
"vars":{ "vars": {
"ansible_user": "jonnybravo", "ansible_user": "jonnybravo",
"ansible_python_interpreter": "/usr/bin/python3", "ansible_python_interpreter": "/usr/bin/python3",
"ansible_ssh_private_key_file": "/home/jonnybravo/.ssh/ansible-test" "ansible_ssh_private_key_file": "/home/jonnybravo/.ssh/ansible-test",
},
},
} }
} print(json.dumps(output, indent=4, sort_keys=True))
} # elif len(sys.argv) == 2:
print(json.dumps(output,indent=4, sort_keys=True)) # print(sys.argv)
# elif len(sys.argv) == 2:
# print(sys.argv)

View File

@@ -0,0 +1,669 @@
ansible_all_ipv4_addresses:
- 172.23.0.187
ansible_all_ipv6_addresses:
- fe80::7815:ceff:fe98:b5ed
ansible_apparmor:
status: disabled
ansible_architecture: x86_64
ansible_bios_date: 02/02/2024
ansible_bios_vendor: LENOVO
ansible_bios_version: N32ET91W (1.67 )
ansible_board_asset_tag: Not Available
ansible_board_name: 20XW0055GE
ansible_board_serial: NA
ansible_board_vendor: LENOVO
ansible_board_version: SDK0J40697 WIN
ansible_chassis_asset_tag: No Asset Information
ansible_chassis_serial: NA
ansible_chassis_vendor: LENOVO
ansible_chassis_version: None
ansible_cmdline:
BOOT_IMAGE: /boot/vmlinuz-6.12-x86_64
cryptdevice: UUID=9cf04ebe-7c4d-4987-afa5-0585f14cd1d7:luks-9cf04ebe-7c4d-4987-afa5-0585f14cd1d7
nmi_watchdog: '0'
nowatchdog: true
quiet: true
reboot: acpi
resume: /dev/mapper/luks-e3c32a55-f6b4-4d3d-a17a-9901f57c152f
root: /dev/mapper/luks-9cf04ebe-7c4d-4987-afa5-0585f14cd1d7
rw: true
splash: true
udev.log_priority: '3'
ansible_date_time:
date: '2025-01-28'
day: '28'
epoch: '1738052955'
epoch_int: '1738052955'
hour: 09
iso8601: '2025-01-28T08:29:15Z'
iso8601_basic: 20250128T092915446279
iso8601_basic_short: 20250128T092915
iso8601_micro: '2025-01-28T08:29:15.446279Z'
minute: '29'
month: '01'
second: '15'
time: 09:29:15
tz: CET
tz_dst: CEST
tz_offset: '+0100'
weekday: Tuesday
weekday_number: '2'
weeknumber: '04'
year: '2025'
ansible_default_ipv4:
address: 172.23.0.187
alias: host0
broadcast: 172.23.0.255
gateway: 172.23.0.1
interface: host0
macaddress: 7a:15:ce:98:b5:ed
mtu: 1500
netmask: 255.255.255.0
network: 172.23.0.0
prefix: '24'
type: ether
ansible_default_ipv6: {}
ansible_device_links:
ids: {}
labels: {}
masters:
nvme0n1p2:
- dm-0
nvme0n1p3:
- dm-1
uuids: {}
ansible_devices:
dm-0:
holders: []
host: ''
links:
ids: []
labels: []
masters: []
uuids: []
model: null
partitions: {}
removable: '0'
rotational: '0'
sas_address: null
sas_device_handle: null
scheduler_mode: ''
sectors: 1928097365
sectorsize: '512'
size: 919.39 GB
support_discard: '0'
vendor: null
virtual: 1
dm-1:
holders: []
host: ''
links:
ids: []
labels: []
masters: []
uuids: []
model: null
partitions: {}
removable: '0'
rotational: '0'
sas_address: null
sas_device_handle: null
scheduler_mode: ''
sectors: 71673682
sectorsize: '512'
size: 34.18 GB
support_discard: '0'
vendor: null
virtual: 1
nvme0n1:
holders: []
host: ''
links:
ids: []
labels: []
masters: []
uuids: []
model: Micron MTFDKBA1T0TFH
partitions:
nvme0n1p1:
holders: []
links:
ids: []
labels: []
masters: []
uuids: []
sectors: 614400
sectorsize: 512
size: 300.00 MB
start: '4096'
uuid: null
nvme0n1p2:
holders:
- luks-9cf04ebe-7c4d-4987-afa5-0585f14cd1d7
links:
ids: []
labels: []
masters:
- dm-0
uuids: []
sectors: 1928101461
sectorsize: 512
size: 919.39 GB
start: '618496'
uuid: null
nvme0n1p3:
holders:
- luks-e3c32a55-f6b4-4d3d-a17a-9901f57c152f
links:
ids: []
labels: []
masters:
- dm-1
uuids: []
sectors: 71677778
sectorsize: 512
size: 34.18 GB
start: '1928719957'
uuid: null
removable: '0'
rotational: '0'
sas_address: null
sas_device_handle: null
scheduler_mode: none
sectors: 2000409264
sectorsize: '512'
serial: 222538DCB6A6
size: 953.87 GB
support_discard: '512'
vendor: null
virtual: 1
sda:
holders: []
host: ''
links:
ids: []
labels: []
masters: []
uuids: []
model: 1081CS0
partitions: {}
removable: '1'
rotational: '0'
sas_address: null
sas_device_handle: null
scheduler_mode: mq-deadline
sectors: 0
sectorsize: '512'
size: 0.00 Bytes
support_discard: '0'
vendor: NORELSYS
virtual: 1
sdb:
holders: []
host: ''
links:
ids: []
labels: []
masters: []
uuids: []
model: 1081CS1
partitions: {}
removable: '1'
rotational: '0'
sas_address: null
sas_device_handle: null
scheduler_mode: mq-deadline
sectors: 0
sectorsize: '512'
size: 0.00 Bytes
support_discard: '0'
vendor: NORELSYS
virtual: 1
sdc:
holders: []
host: ''
links:
ids: []
labels: []
masters: []
uuids: []
model: CT1000X8SSD9
partitions:
sdc1:
holders: []
links:
ids: []
labels: []
masters: []
uuids: []
sectors: 1953521664
sectorsize: 512
size: 931.51 GB
start: '2048'
uuid: null
removable: '0'
rotational: '1'
sas_address: null
sas_device_handle: null
scheduler_mode: mq-deadline
sectors: 1953525168
sectorsize: '512'
size: 931.51 GB
support_discard: '0'
vendor: Micron
virtual: 1
ansible_distribution: Ubuntu
ansible_distribution_file_parsed: true
ansible_distribution_file_path: /etc/os-release
ansible_distribution_file_variety: Debian
ansible_distribution_major_version: '22'
ansible_distribution_release: jammy
ansible_distribution_version: '22.04'
ansible_dns:
nameservers:
- 10.50.0.3
options:
edns0: true
trust-ad: true
search:
- speedport.ip
ansible_domain: ''
ansible_effective_group_id: 1000
ansible_effective_user_id: 1000
ansible_env:
HOME: /home/jonnybravo
LC_CTYPE: C.UTF-8
LOGNAME: jonnybravo
MOTD_SHOWN: pam
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PWD: /home/jonnybravo
SHELL: /bin/bash
SHLVL: '0'
SSH_CLIENT: 172.23.0.1 59494 22
SSH_CONNECTION: 172.23.0.1 59494 172.23.0.187 22
SSH_TTY: /dev/pts/1
TERM: tmux-256color
USER: jonnybravo
XDG_RUNTIME_DIR: /run/user/1000
XDG_SESSION_CLASS: user
XDG_SESSION_ID: '6'
XDG_SESSION_TYPE: tty
_: /bin/sh
ansible_fibre_channel_wwn: []
ansible_fips: false
ansible_flags:
- fpu
- vme
- de
- pse
- tsc
- msr
- pae
- mce
- cx8
- apic
- sep
- mtrr
- pge
- mca
- cmov
- pat
- pse36
- clflush
- dts
- acpi
- mmx
- fxsr
- sse
- sse2
- ss
- ht
- tm
- pbe
- syscall
- nx
- pdpe1gb
- rdtscp
- lm
- constant_tsc
- art
- arch_perfmon
- pebs
- bts
- rep_good
- nopl
- xtopology
- nonstop_tsc
- cpuid
- aperfmperf
- tsc_known_freq
- pni
- pclmulqdq
- dtes64
- monitor
- ds_cpl
- vmx
- est
- tm2
- ssse3
- sdbg
- fma
- cx16
- xtpr
- pdcm
- pcid
- sse4_1
- sse4_2
- x2apic
- movbe
- popcnt
- tsc_deadline_timer
- aes
- xsave
- avx
- f16c
- rdrand
- lahf_lm
- abm
- 3dnowprefetch
- cpuid_fault
- epb
- cat_l2
- cdp_l2
- ssbd
- ibrs
- ibpb
- stibp
- ibrs_enhanced
- tpr_shadow
- flexpriority
- ept
- vpid
- ept_ad
- fsgsbase
- tsc_adjust
- bmi1
- avx2
- smep
- bmi2
- erms
- invpcid
- rdt_a
- avx512f
- avx512dq
- rdseed
- adx
- smap
- avx512ifma
- clflushopt
- clwb
- intel_pt
- avx512cd
- sha_ni
- avx512bw
- avx512vl
- xsaveopt
- xsavec
- xgetbv1
- xsaves
- split_lock_detect
- user_shstk
- dtherm
- ida
- arat
- pln
- pts
- hwp
- hwp_notify
- hwp_act_window
- hwp_epp
- hwp_pkg_req
- vnmi
- avx512vbmi
- umip
- pku
- ospke
- avx512_vbmi2
- gfni
- vaes
- vpclmulqdq
- avx512_vnni
- avx512_bitalg
- avx512_vpopcntdq
- rdpid
- movdiri
- movdir64b
- fsrm
- avx512_vp2intersect
- md_clear
- ibt
- flush_l1d
- arch_capabilities
ansible_form_factor: Notebook
ansible_fqdn: localhost
ansible_host0:
active: true
device: host0
ipv4:
address: 172.23.0.187
broadcast: 172.23.0.255
netmask: 255.255.255.0
network: 172.23.0.0
prefix: '24'
ipv6:
- address: fe80::7815:ceff:fe98:b5ed
prefix: '64'
scope: link
macaddress: 7a:15:ce:98:b5:ed
mtu: 1500
promisc: false
speed: 10000
type: ether
ansible_hostname: dan-jam-01
ansible_hostnqn: ''
ansible_interfaces:
- lo
- host0
ansible_is_chroot: true
ansible_iscsi_iqn: ''
ansible_kernel: 6.12.4-1-MANJARO
ansible_kernel_version: '#1 SMP PREEMPT_DYNAMIC Mon, 09 Dec 2024 11:58:37 +0000'
ansible_lo:
active: true
device: lo
ipv4:
address: 127.0.0.1
broadcast: ''
netmask: 255.0.0.0
network: 127.0.0.0
prefix: '8'
ipv6:
- address: ::1
prefix: '128'
scope: host
mtu: 65536
promisc: false
type: loopback
ansible_loadavg:
15m: 0.37646484375
1m: 1.17431640625
5m: 0.80224609375
ansible_local: {}
ansible_locally_reachable_ips:
ipv4:
- 127.0.0.0/8
- 127.0.0.1
- 172.23.0.187
ipv6:
- ::1
- fe80::7815:ceff:fe98:b5ed
ansible_lsb:
codename: jammy
description: Ubuntu 22.04.5 LTS
id: Ubuntu
major_release: '22'
release: '22.04'
ansible_lvm: N/A
ansible_machine: x86_64
ansible_machine_id: 74fa9d4996124ff58eea3b7b9f53f38f
ansible_memfree_mb: 15518
ansible_memory_mb:
nocache:
free: 23611
used: 8203
real:
free: 15518
total: 31814
used: 16296
swap:
cached: 8
free: 34976
total: 34996
used: 20
ansible_memtotal_mb: 31814
ansible_mounts:
- block_available: 162114263
block_size: 4096
block_total: 236947382
block_used: 74833119
device: /dev/mapper/luks-9cf04ebe-7c4d-4987-afa5-0585f14cd1d7
dump: 0
fstype: ext4
inode_available: 58698830
inode_total: 60260352
inode_used: 1561522
mount: /
options: rw,noatime,idmapped,bind
passno: 0
size_available: 664020021248
size_total: 970536476672
uuid: N/A
- block_available: 162114263
block_size: 4096
block_total: 236947382
block_used: 74833119
device: /dev/mapper/luks-9cf04ebe-7c4d-4987-afa5-0585f14cd1d7
dump: 0
fstype: ext4
inode_available: 58698830
inode_total: 60260352
inode_used: 1561522
mount: /run/host/os-release
options: ro,nosuid,nodev,noexec,noatime,bind
passno: 0
size_available: 664020021248
size_total: 970536476672
uuid: N/A
ansible_nodename: dan-jam-01
ansible_os_family: Debian
ansible_pkg_mgr: apt
ansible_proc_cmdline:
BOOT_IMAGE: /boot/vmlinuz-6.12-x86_64
cryptdevice: UUID=9cf04ebe-7c4d-4987-afa5-0585f14cd1d7:luks-9cf04ebe-7c4d-4987-afa5-0585f14cd1d7
nmi_watchdog: '0'
nowatchdog: true
quiet: true
reboot: acpi
resume: /dev/mapper/luks-e3c32a55-f6b4-4d3d-a17a-9901f57c152f
root:
- UUID=38f88aa5-03f0-4608-ac46-6b9cad7cb1c4
- /dev/mapper/luks-9cf04ebe-7c4d-4987-afa5-0585f14cd1d7
rw: true
splash: true
udev.log_priority: '3'
ansible_processor:
- '0'
- GenuineIntel
- 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
- '1'
- GenuineIntel
- 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
- '2'
- GenuineIntel
- 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
- '3'
- GenuineIntel
- 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
- '4'
- GenuineIntel
- 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
- '5'
- GenuineIntel
- 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
- '6'
- GenuineIntel
- 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
- '7'
- GenuineIntel
- 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
ansible_processor_cores: 4
ansible_processor_count: 1
ansible_processor_nproc: 8
ansible_processor_threads_per_core: 2
ansible_processor_vcpus: 8
ansible_product_name: 20XW0055GE
ansible_product_serial: NA
ansible_product_uuid: NA
ansible_product_version: ThinkPad X1 Carbon Gen 9
ansible_python:
executable: /usr/bin/python3
has_sslcontext: true
type: cpython
version:
major: 3
micro: 12
minor: 10
releaselevel: final
serial: 0
version_info:
- 3
- 10
- 12
- final
- 0
ansible_python_version: 3.10.12
ansible_real_group_id: 1000
ansible_real_user_id: 1000
ansible_selinux:
status: disabled
ansible_selinux_python_present: true
ansible_service_mgr: systemd
ansible_ssh_host_key_ecdsa_public: AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBlQf89/mIPEp3lsLUSkqVWQaU1yvskxPFbvnedoV0f+vi5vQKUoUfcX//3jqIKgjdH6fnqiQRfROO+seF+mjjo=
ansible_ssh_host_key_ecdsa_public_keytype: ecdsa-sha2-nistp256
ansible_ssh_host_key_ed25519_public: AAAAC3NzaC1lZDI1NTE5AAAAIIZpUjgZziEasuYZLOLxU/ex4HiuyOf6oofL1DqM55xx
ansible_ssh_host_key_ed25519_public_keytype: ssh-ed25519
ansible_ssh_host_key_rsa_public: AAAAB3NzaC1yc2EAAAADAQABAAABgQCxAnj9PVaIaAMaRExN0t0cW+7mu2QOum1BowLjoWFhgNcYeoev38a0FqUy49WE9+wIYG+URr1vIjO2F5Udd6QRtm8//wbcdBA4sbc5JKmd+ILMpy2FI6rmAjAfzYQkxLxGB+AwblAKTAJgoFn6/stXELiY8QYfVf2+SKTVk96gvVlMsIuFQy36PSjS2nSwdovTML4N/KrwJdUMDp7ysJ8bOB3NyXY/hBy+dgzGZ8ezYx5pkg7PRR+Y5rRh++dsfrkm+8e4gHi6uY+mwitpxodNMzVBRI6KzijUhbj4bTU7ASCwfmQSoNBZrY+4Xb9DiI421GP9/TWxAOz7vLWNcnkKtVeZpzXrxH5mmAbKJqu6vFhOkkz4IGz/mvvAAOgX/J6ILgT+1VHAIooQVfIDoOE/9GfDEPmWpjCmP1IQRokJwIy3isUZwMoN4V0rYfZ2YDW8YHwgirRXa6eEBXKZzkHAnqCt+WSss6jVdGW+1PjiakG1N1NL+dUI0NcPHgiuZIM=
ansible_ssh_host_key_rsa_public_keytype: ssh-rsa
ansible_swapfree_mb: 34976
ansible_swaptotal_mb: 34996
ansible_system: Linux
ansible_system_capabilities:
- ''
ansible_system_capabilities_enforced: 'True'
ansible_system_vendor: LENOVO
ansible_systemd:
features: +PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL
+ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK
+PCRE2 -PWQUALITY -P11KIT -QRENCODE +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -XKBCOMMON +UTMP
+SYSVINIT default-hierarchy=unified
version: 249
ansible_uptime_seconds: 73395
ansible_user_dir: /home/jonnybravo
ansible_user_gecos: Jonny Bravo,,,
ansible_user_gid: 1000
ansible_user_id: jonnybravo
ansible_user_shell: /bin/bash
ansible_user_uid: 1000
ansible_userspace_architecture: x86_64
ansible_userspace_bits: '64'
ansible_virtualization_role: guest
ansible_virtualization_tech_guest:
- container
- systemd-nspawn
ansible_virtualization_tech_host:
- kvm
- virtualbox
ansible_virtualization_type: systemd-nspawn
gather_subset:
- all
module_setup: true