diff --git a/sysadmin/netbox-importer/.gitignore b/sysadmin/netbox-importer/.gitignore new file mode 100644 index 0000000..cd8c054 --- /dev/null +++ b/sysadmin/netbox-importer/.gitignore @@ -0,0 +1,2 @@ +output +.venv diff --git a/sysadmin/netbox-importer/Readme.md b/sysadmin/netbox-importer/Readme.md new file mode 100644 index 0000000..7320381 --- /dev/null +++ b/sysadmin/netbox-importer/Readme.md @@ -0,0 +1,24 @@ +# Fact importer into netbox + +Samall utility to import the puppet facts content into netbox + +## usage + + +### first time + +``` +python3 -m venv .venv +. .venv/bin/activate +pip install -r requirements.txt +``` + +### Import facts + +``` +. .venv/bin/activate +export NETBOX_URL=http://localhost:8080 +export NETBOX_TOKEN= +export FACTS_DIRECTORY=/path/to/puppet-environment/octocatalog-diff/facts"> +python run.py +``` diff --git a/sysadmin/netbox-importer/requirements.txt b/sysadmin/netbox-importer/requirements.txt new file mode 100644 index 0000000..4a2330b --- /dev/null +++ b/sysadmin/netbox-importer/requirements.txt @@ -0,0 +1,17 @@ +astroid==2.4.2 +certifi==2020.6.20 +chardet==3.0.4 +idna==2.10 +isort==5.5.0 +lazy-object-proxy==1.4.3 +mccabe==0.6.1 +pkg-resources==0.0.0 +pylint==2.6.0 +pynetbox==5.0.8 +PyYAML==5.3.1 +requests==2.24.0 +six==1.15.0 +toml==0.10.1 +typed-ast==1.4.1 +urllib3==1.25.10 +wrapt==1.12.1 diff --git a/sysadmin/netbox-importer/run.py b/sysadmin/netbox-importer/run.py new file mode 100644 index 0000000..819189f --- /dev/null +++ b/sysadmin/netbox-importer/run.py @@ -0,0 +1,198 @@ +import yaml +import os +from os import walk + +import pynetbox +import json + +output_directory="./output" +default_device_role = 'to be defined' +default_device_role_id = None +default_cluster = 'Default cluster' +default_cluster_id = None + + +class Facts(yaml.YAMLObject): + yaml_tag = u"!ruby/object:Puppet::Node::Facts" + + def init(self, loader, name, values, timestamp, expiration): + self.name = name + self.values = values + self.expiration = expiration + self.timestamp = timestamp + + +# yaml.add_multi_constructor(u"!ruby/object:Puppet::Node::Facts", construct_ruby_object) +# yaml.add_constructor(u"!ruby/sym.*", construct_ruby_sym) +def check_end_get_object_id(result, name, filter): + count = len(result) + if count == 0: + print(f"{name} {filter} not found") + exit(1) + elif count > 1: + print(f"More than 1 {name} exist for name {filter}") + exit(1) + + return result[0]['id'] + +def get_device_role_id(name): + device_roles = nb.dcim.device_roles.filter(name=name) + return check_end_get_object_id(device_roles, "device role", name) + +def get_device_type_id(model): + device_types = nb.dcim.device_types.filter(model=model) + return check_end_get_object_id(device_types, "device type", model) + +def get_platform_id(name): + platforms = nb.dcim.platforms.filter(name=name) + return check_end_get_object_id(platforms, "platform", name) + +def get_site_id(name): + sites = nb.dcim.sites.filter(name=name) + return check_end_get_object_id(sites, "sites", name) + +def get_cluster_id(name): + clusters = nb.virtualization.clusters.filter(name=name) + return check_end_get_object_id(clusters, "cluster", name) + +def get_device(name): + device = nb.dcim.devices.filter(name) + count = len(device) + if count == 0: + return None + elif count == 1: + return device[0] + else: + print("More than one device found for name={name}") + exit(1) + +def get_virtual_machine(name): + vms = nb.virtualization.virtual_machines.filter(name) + count = len(vms) + if count == 0: + return None + elif count == 1: + return vms[0] + else: + print("More than one device found for name={name}") + exit(1) + +def get_or_create_ip_address(address): + ip = nb.ipam.ip_addresses.filter(address=address) + + count = len(ip) + + if count == 0: + print(f" Creating ip {address}") + ip = {} + ip['address'] = address + + ip = nb.ipam.ip_addresses.create(ip) + return ip['id'] + elif count == 1: + return ip[0]['id'] + else: + print(f"There are more then one ip addresse defined for {address}") + exit(1) + +def create_or_update_device(facts): + device_type = facts.values['dmi']['product']['name'] + device_type_id = get_device_type_id(device_type) + print("device_type_id: ", device_type_id) + platform = facts.values['lsbdistcodename'] + platform_id = get_platform_id(platform) + print(f"platform_id: {platform_id}") + site_id = get_site_id(facts.values['location']) + + device = get_device(facts.name) + + if device == None : + device = {} + + device['device_role'] = default_device_role_id + device['name'] = facts.name + device['manufacturer'] = facts.values['manufacturer'] + device['device_type'] = device_type_id + device['platform'] = platform_id + device['serial'] = facts.values['boardserialnumber'] if 'boardserialnumber' in facts.values else '' + device['status'] = 'active' + device['site'] = site_id + + print(f" Creating {device['name']} via api") + print(json.dumps(device)) + + nb.dcim.devices.create(device) + + else: + print(f"Device {facts.name} already exists") + +def create_or_update_virtual_machine(facts): + print(vars(facts)) + + vm = get_virtual_machine(facts.name) + + if vm == None : + print(f"VM {facts.name} needs to be created") + + vm = {} + vm['name'] = facts.name + vm['cluster'] = default_cluster_id + vm['role'] = default_device_role_id + vm['platform'] = get_platform_id(facts.values['lsbdistcodename']) + vm['memory'] = "%.0f" % facts.values['memorysize_mb'] + vm['vcpus'] = facts.values['physicalprocessorcount'] + + # TODO create all ips + properties + # TODO Create interfaces + # TODO associate interfaces and ips + # TODO mutualize with devices + ip_id = get_or_create_ip_address(facts.values['networking']['ip']) + #vm['primaryip'] = facts.values['networking']['ip'] + + print(f" Creating {vm['name']} via api") + print(json.dumps(vm)) + nb.virtualization.virtual_machines.create(vm) + + else: + print(f"VM {facts.name} already exists") + exit(1) + +##################################### +## Start + +env_url='NETBOX_URL' +env_token='NETBOX_TOKEN' +env_facts_directory='FACTS_DIRECTORY' + +if env_url not in os.environ or env_token not in os.environ or env_facts_directory not in os.environ: + print(f"{env_url}, {env_token} and {env_facts_directory} must be declared in the environement") + exit(1) + +netbox_url = os.environ[env_url] +netbox_token = os.environ[env_token] +facts_directory = os.environ[env_facts_directory] + +nb = pynetbox.api(netbox_url, token=netbox_token) + +default_device_role_id = get_device_role_id(default_device_role) +# print("The default device role id for '{}' is : {}".format(default_device_role, default_device_role_id)) +default_cluster_id = get_cluster_id(default_cluster) + +for (_, _, filenames) in walk(facts_directory) : + for filename in filenames: + print("filename : " , filename) + full_filename = facts_directory + "/" + filename + with open(r"{}".format(full_filename)) as file: + + facts = yaml.load(file, Loader=yaml.FullLoader) + + print("\tName : ", facts.name) + print("\tis_virtual :", facts.values['is_virtual']) + + if facts.values['is_virtual'] == False: + create_or_update_device(facts) + elif facts.values['is_virtual'] == True : + create_or_update_virtual_machine(facts) + else: + print("Virtual status can't be found for facts :") + print(facts) diff --git a/sysadmin/netbox-importer/test.json b/sysadmin/netbox-importer/test.json new file mode 100644 index 0000000..d055510 --- /dev/null +++ b/sysadmin/netbox-importer/test.json @@ -0,0 +1,5 @@ +filename : worker12.softwareheritage.org.yaml + Name : worker12.softwareheritage.org + is_virtual : True +{'name': 'worker12.softwareheritage.org', 'values': {'agent_specified_environment': 'production', 'apt_dist_updates': 1, 'apt_has_dist_updates': True, 'apt_has_updates': True, 'apt_package_dist_updates': ['python3-swh.storage'], 'apt_package_security_dist_updates': [], 'apt_package_security_updates': [], 'apt_package_updates': ['python3-swh.storage'], 'apt_reboot_required': True, 'apt_security_dist_updates': 0, 'apt_security_updates': 0, 'apt_update_last_success': 1599044647, 'apt_updates': 1, 'architecture': 'amd64', 'augeas': {'version': '1.11.0'}, 'augeasversion': '1.11.0', 'bios_release_date': '04/01/2014', 'bios_vendor': 'SeaBIOS', 'bios_version': 'rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org', 'blockdevice_sda_model': 'QEMU HARDDISK', 'blockdevice_sda_size': 42949672960, 'blockdevice_sda_vendor': 'QEMU', 'blockdevice_sr0_model': 'QEMU DVD-ROM', 'blockdevice_sr0_size': 1073741312, 'blockdevice_sr0_vendor': 'QEMU', 'blockdevices': 'sr0,sda', 'cassandracmsheapnewsize': 300, 'cassandracmsmaxheapsize': 3003, 'cassandraheapnewsize': 300, 'cassandramaxheapsize': 3003, 'chassistype': 'Other', 'disks': {'sda': {'model': 'QEMU HARDDISK', 'size': '40.00 GiB', 'size_bytes': 42949672960, 'vendor': 'QEMU'}, 'sr0': {'model': 'QEMU DVD-ROM', 'size': '1.00 GiB', 'size_bytes': 1073741312, 'vendor': 'QEMU'}}, 'dmi': {'bios': {'release_date': '04/01/2014', 'vendor': 'SeaBIOS', 'version': 'rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org'}, 'chassis': {'type': 'Other'}, 'manufacturer': 'QEMU', 'product': {'name': 'Standard PC (i440FX + PIIX, 1996)', 'uuid': 'b6b32cc5-3200-4495-bc10-8437448a62e1'}}, 'docker_home_dirs': {'root': '/root', 'daemon': '/usr/sbin', 'bin': '/bin', 'sys': '/dev', 'sync': '/bin', 'games': '/usr/games', 'man': '/var/cache/man', 'lp': '/var/spool/lpd', 'mail': '/var/mail', 'news': '/var/spool/news', 'uucp': '/var/spool/uucp', 'proxy': '/bin', 'www-data': '/var/www', 'backup': '/var/backups', 'list': '/var/list', 'irc': '/var/run/ircd', 'gnats': '/var/lib/gnats', 'nobody': '/nonexistent', 'systemd-timesync': '/run/systemd', 'systemd-network': '/run/systemd/netif', 'systemd-resolve': '/run/systemd/resolve', '_apt': '/nonexistent', 'messagebus': '/var/run/dbus', 'sshd': '/run/sshd', 'puppet': '/var/lib/puppet', 'olasd': '/home/olasd', 'swhworker': '/home/swhworker', 'swhstorage': '/home/swhstorage', 'swhwebapp': '/home/swhwebapp', 'swhbackup': '/home/swhbackup', 'rdicosmo': '/home/rdicosmo', 'swhteamannex': '/home/swhteamannex', 'swhscheduler': '/home/swhscheduler', 'jbertran': '/home/jbertran', 'qcampos': '/home/qcampos', 'gitorious': '/home/gitorious', 'fiendish': '/home/fiendish', 'morane': '/home/morane', 'ssushant': '/home/ssushant', 'anlambert': '/home/anlambert', 'grouss': '/home/grouss', 'swhdeposit': '/home/swhdeposit', 'journalbeat': '/var/lib/journalbeat', 'ntp': '/home/ntp', 'postfix': '/var/spool/postfix', 'statd': '/var/lib/nfs', 'zack': '/home/zack', 'ardumont': '/home/ardumont', 'seirl': '/home/seirl', 'ftigeot': '/home/ftigeot', 'unbound': '/var/lib/unbound', 'munin': '/var/lib/munin', 'nagios': '/var/lib/nagios', 'swhvault': '/home/swhvault', 'prometheus': '/var/lib/prometheus', 'ddouard': '/home/ddouard', 'vlorentz': '/home/vlorentz', 'haltode': '/home/haltode', '_rpc': '/run/rpcbind', 'systemd-coredump': '/', 'danseraf': '/home/danseraf', 'aeviso': '/home/aeviso'}, 'domain': 'softwareheritage.org', 'facterversion': '3.11.0', 'filesystems': 'btrfs,ext2,ext3,ext4,hfs,hfsplus,jfs,minix,msdos,qnx4,ufs,vfat,xfs', 'fips_enabled': False, 'fqdn': 'worker12.softwareheritage.org', 'gid': 'root', 'hardwareisa': 'unknown', 'hardwaremodel': 'x86_64', 'hostname': 'worker12', 'icinga2_puppet_hostcert': '/var/lib/puppet/ssl/certs/worker12.softwareheritage.org.pem', 'icinga2_puppet_hostprivkey': '/var/lib/puppet/ssl/private_keys/worker12.softwareheritage.org.pem', 'icinga2_puppet_localcacert': '/var/lib/puppet/ssl/certs/ca.pem', 'id': 'root', 'identity': {'gid': 0, 'group': 'root', 'privileged': True, 'uid': 0, 'user': 'root'}, 'interfaces': 'ens18,ens19,lo', 'ipaddress': '128.93.193.38', 'ipaddress6': 'fe80::5054:ff:fe1a:85b5', 'ipaddress6_ens18': 'fe80::5054:ff:fe1a:85b5', 'ipaddress6_ens19': 'fe80::5054:ff:fe1a:85b4', 'ipaddress6_lo': '::1', 'ipaddress_ens18': '128.93.193.38', 'ipaddress_ens19': '192.168.100.38', 'ipaddress_lo': '127.0.0.1', 'is_pe': False, 'is_virtual': True, 'kernel': 'Linux', 'kernelmajversion': '4.19', 'kernelrelease': '4.19.0-9-amd64', 'kernelversion': '4.19.0', 'letsencrypt_directory': {}, 'load_averages': {'15m': 4.04, '1m': 4.41, '5m': 4.24}, 'location': 'sesi_rocquencourt', 'lsbdistcodename': 'buster', 'lsbdistdescription': 'Debian GNU/Linux 10 (buster)', 'lsbdistid': 'Debian', 'lsbdistrelease': '10', 'lsbmajdistrelease': '10', 'macaddress': '52:54:00:1a:85:b5', 'macaddress_ens18': '52:54:00:1a:85:b5', 'macaddress_ens19': '52:54:00:1a:85:b4', 'manufacturer': 'QEMU', 'memory': {'swap': {'available': '1.94 GiB', 'available_bytes': 2083545088, 'capacity': '49.15%', 'total': '3.82 GiB', 'total_bytes': 4097830912, 'used': '1.88 GiB', 'used_bytes': 2014285824}, 'system': {'available': '5.96 GiB', 'available_bytes': 6394142720, 'capacity': '49.23%', 'total': '11.73 GiB', 'total_bytes': 12593876992, 'used': '5.77 GiB', 'used_bytes': 6199734272}}, 'memoryfree': '5.96 GiB', 'memoryfree_mb': 6097.9296875, 'memorysize': '11.73 GiB', 'memorysize_mb': 12010.45703125, 'mountpoints': {'/': {'available': '28.30 GiB', 'available_bytes': 30384320512, 'capacity': '20.26%', 'device': '/dev/mapper/worker12--vg-root', 'filesystem': 'ext4', 'options': ['rw', 'relatime', 'errors=remount-ro'], 'size': '35.49 GiB', 'size_bytes': 38104956928, 'used': '7.19 GiB', 'used_bytes': 7720636416}, '/dev/shm': {'available': '5.86 GiB', 'available_bytes': 6295560192, 'capacity': '0.02%', 'device': 'tmpfs', 'filesystem': 'tmpfs', 'options': ['rw', 'nosuid', 'nodev'], 'size': '5.86 GiB', 'size_bytes': 6296936448, 'used': '1.31 MiB', 'used_bytes': 1376256}, '/run': {'available': '1.17 GiB', 'available_bytes': 1258819584, 'capacity': '0.05%', 'device': 'tmpfs', 'filesystem': 'tmpfs', 'options': ['rw', 'nosuid', 'noexec', 'relatime', 'size=1229872k', 'mode=755'], 'size': '1.17 GiB', 'size_bytes': 1259388928, 'used': '556.00 KiB', 'used_bytes': 569344}, '/run/lock': {'available': '5.00 MiB', 'available_bytes': 5242880, 'capacity': '0%', 'device': 'tmpfs', 'filesystem': 'tmpfs', 'options': ['rw', 'nosuid', 'nodev', 'noexec', 'relatime', 'size=5120k'], 'size': '5.00 MiB', 'size_bytes': 5242880, 'used': '0 bytes', 'used_bytes': 0}, '/sys/fs/cgroup': {'available': '5.86 GiB', 'available_bytes': 6296936448, 'capacity': '0%', 'device': 'tmpfs', 'filesystem': 'tmpfs', 'options': ['ro', 'nosuid', 'nodev', 'noexec', 'mode=755'], 'size': '5.86 GiB', 'size_bytes': 6296936448, 'used': '0 bytes', 'used_bytes': 0}}, 'mounts': ['/'], 'mtu_ens18': 1500, 'mtu_ens19': 1500, 'mtu_lo': 65536, 'mysql_server_id': 115189, 'netmask': '255.255.255.0', 'netmask6': 'ffff:ffff:ffff:ffff::', 'netmask6_ens18': 'ffff:ffff:ffff:ffff::', 'netmask6_ens19': 'ffff:ffff:ffff:ffff::', 'netmask6_lo': 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', 'netmask_ens18': '255.255.255.0', 'netmask_ens19': '255.255.255.0', 'netmask_lo': '255.0.0.0', 'network': '128.93.193.0', 'network6': 'fe80::', 'network6_ens18': 'fe80::', 'network6_ens19': 'fe80::', 'network6_lo': '::1', 'network_ens18': '128.93.193.0', 'network_ens19': '192.168.100.0', 'network_lo': '127.0.0.0', 'networking': {'domain': 'softwareheritage.org', 'fqdn': 'worker12.softwareheritage.org', 'hostname': 'worker12', 'interfaces': {'ens18': {'bindings': [{'address': '128.93.193.38', 'netmask': '255.255.255.0', 'network': '128.93.193.0'}], 'bindings6': [{'address': 'fe80::5054:ff:fe1a:85b5', 'netmask': 'ffff:ffff:ffff:ffff::', 'network': 'fe80::'}], 'ip': '128.93.193.38', 'ip6': 'fe80::5054:ff:fe1a:85b5', 'mac': '52:54:00:1a:85:b5', 'mtu': 1500, 'netmask': '255.255.255.0', 'netmask6': 'ffff:ffff:ffff:ffff::', 'network': '128.93.193.0', 'network6': 'fe80::'}, 'ens19': {'bindings': [{'address': '192.168.100.38', 'netmask': '255.255.255.0', 'network': '192.168.100.0'}], 'bindings6': [{'address': 'fe80::5054:ff:fe1a:85b4', 'netmask': 'ffff:ffff:ffff:ffff::', 'network': 'fe80::'}], 'ip': '192.168.100.38', 'ip6': 'fe80::5054:ff:fe1a:85b4', 'mac': '52:54:00:1a:85:b4', 'mtu': 1500, 'netmask': '255.255.255.0', 'netmask6': 'ffff:ffff:ffff:ffff::', 'network': '192.168.100.0', 'network6': 'fe80::'}, 'lo': {'bindings': [{'address': '127.0.0.1', 'netmask': '255.0.0.0', 'network': '127.0.0.0'}], 'bindings6': [{'address': '::1', 'netmask': 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', 'network': '::1'}], 'ip': '127.0.0.1', 'ip6': '::1', 'mtu': 65536, 'netmask': '255.0.0.0', 'netmask6': 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', 'network': '127.0.0.0', 'network6': '::1'}}, 'ip': '128.93.193.38', 'ip6': 'fe80::5054:ff:fe1a:85b5', 'mac': '52:54:00:1a:85:b5', 'mtu': 1500, 'netmask': '255.255.255.0', 'netmask6': 'ffff:ffff:ffff:ffff::', 'network': '128.93.193.0', 'network6': 'fe80::', 'primary': 'ens18'}, 'operatingsystem': 'Debian', 'operatingsystemmajrelease': '10', 'operatingsystemrelease': '10.5', 'os': {'architecture': 'amd64', 'distro': {'codename': 'buster', 'description': 'Debian GNU/Linux 10 (buster)', 'id': 'Debian', 'release': {'full': '10', 'major': '10'}}, 'family': 'Debian', 'hardware': 'x86_64', 'name': 'Debian', 'release': {'full': '10.5', 'major': '10', 'minor': '5'}, 'selinux': {'enabled': False}}, 'osfamily': 'Debian', 'package_provider': 'apt', 'partitions': {'/dev/mapper/worker12--vg-root': {'filesystem': 'ext4', 'mount': '/', 'size': '36.18 GiB', 'size_bytes': 38847643648, 'uuid': '6bbeffb1-8ea6-474a-9594-43cadefc4b05'}, '/dev/mapper/worker12--vg-swap_1': {'filesystem': 'swap', 'size': '3.82 GiB', 'size_bytes': 4097835008, 'uuid': '1669c3fe-693e-42cb-9f56-453042b20abc'}, '/dev/sda1': {'filesystem': 'LVM2_member', 'partuuid': '451d2abb-01', 'size': '40.00 GiB', 'size_bytes': 42948624384, 'uuid': '2vdQbw-w86t-dPeW-qlVQ-686c-M1T4-cjnp4I'}}, 'path': '/usr/bin:/bin:/usr/sbin:/sbin', 'physicalprocessorcount': 3, 'processor0': 'Common KVM processor', 'processor1': 'Common KVM processor', 'processor2': 'Common KVM processor', 'processorcount': 3, 'processors': {'count': 3, 'isa': 'unknown', 'models': ['Common KVM processor', 'Common KVM processor', 'Common KVM processor'], 'physicalcount': 3}, 'productname': 'Standard PC (i440FX + PIIX, 1996)', 'public_ipaddresses': ['128.93.193.38'], 'puppet_environmentpath': '/etc/puppet/code/environments', 'puppet_server': 'pergamon.internal.softwareheritage.org', 'puppet_vardir': '/var/lib/puppet', 'puppetversion': '5.5.10', 'root_home': '/root', 'ruby': {'platform': 'x86_64-linux-gnu', 'sitedir': '/usr/local/lib/site_ruby/2.5.0', 'version': '2.5.5'}, 'rubyplatform': 'x86_64-linux-gnu', 'rubysitedir': '/usr/local/lib/site_ruby/2.5.0', 'rubyversion': '2.5.5', 'selinux': False, 'service_provider': 'systemd', 'ssh': {'ecdsa': {'fingerprints': {'sha1': 'SSHFP 3 1 0a90e0a49258e225ad7fe47a6358725015aafa60', 'sha256': 'SSHFP 3 2 b8bbb11c392779d3c54e672eddb83c78e03eb6132c31d34a1e2fa84e0b0dd5f2'}, 'key': 'AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOyC806UsocgYKtzAMVIn/2YbW2XzHulSGwPR8VuOxuaiWg6ypYG8BgQojALDcITv2158R/q3cimltPxVsXtk8o=', 'type': 'ecdsa-sha2-nistp256'}, 'ed25519': {'fingerprints': {'sha1': 'SSHFP 4 1 9251ca6b7fcb842332e6a5c11292d149f208b092', 'sha256': 'SSHFP 4 2 5170f5ac176cb3bd39ed75f78598fd690cc42e6578e74866d075f4f11c827dbf'}, 'key': 'AAAAC3NzaC1lZDI1NTE5AAAAIHhU8EXMAZlvywOTjGdEEEWeAqKFO1jIBJYN8PUPCMrx', 'type': 'ssh-ed25519'}, 'rsa': {'fingerprints': {'sha1': 'SSHFP 1 1 c92b48d07978156e5d87d62a3f6a74357a9ad35c', 'sha256': 'SSHFP 1 2 6635d211d167d650847867c06b1b89d174f8f1ea3510b258e9d531a933e504e1'}, 'key': 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDIb7XDb+JlBsP0OeAxdoOZaVFJGdNz4T5tNLa2dzMlFsghEgNBgTHT/wLcGaCyljYvIKk5SrGWQUvLNrKqoMziGd0y7z7KMCDT0i+seOaMOexXKzslPdcvb63GBmA6hvVwndecFxbv0olcRAaU9i2//9BIxtMVSgxbgZ1h+okcoZo8TBDVTAeENftcd5cerqqadO6+8ZJNyilwM19PuvBaYUKkCo2gHFXC5o3sP1EKirMFAuhdQl3fvhkxWtPoj1EE/Zn/vY/t7lO1vgeiNifQzbiCW57TT3BZZrG8WkNLynbILnNW+mmgUxYGocgQb7TyZq2gTbQQaQK89lU38hkv', 'type': 'ssh-rsa'}}, 'ssh_client_version_full': '7.9p1', 'ssh_keys_users': {}, 'ssh_server_version_full': '7.9p1', 'ssh_server_version_major': '7', 'ssh_server_version_release': '7.9', 'sshecdsakey': 'AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOyC806UsocgYKtzAMVIn/2YbW2XzHulSGwPR8VuOxuaiWg6ypYG8BgQojALDcITv2158R/q3cimltPxVsXtk8o=', 'sshed25519key': 'AAAAC3NzaC1lZDI1NTE5AAAAIHhU8EXMAZlvywOTjGdEEEWeAqKFO1jIBJYN8PUPCMrx', 'sshfp_ecdsa': 'SSHFP 3 1 0a90e0a49258e225ad7fe47a6358725015aafa60\nSSHFP 3 2 b8bbb11c392779d3c54e672eddb83c78e03eb6132c31d34a1e2fa84e0b0dd5f2', 'sshfp_ed25519': 'SSHFP 4 1 9251ca6b7fcb842332e6a5c11292d149f208b092\nSSHFP 4 2 5170f5ac176cb3bd39ed75f78598fd690cc42e6578e74866d075f4f11c827dbf', 'sshfp_rsa': 'SSHFP 1 1 c92b48d07978156e5d87d62a3f6a74357a9ad35c\nSSHFP 1 2 6635d211d167d650847867c06b1b89d174f8f1ea3510b258e9d531a933e504e1', 'sshrsakey': 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDIb7XDb+JlBsP0OeAxdoOZaVFJGdNz4T5tNLa2dzMlFsghEgNBgTHT/wLcGaCyljYvIKk5SrGWQUvLNrKqoMziGd0y7z7KMCDT0i+seOaMOexXKzslPdcvb63GBmA6hvVwndecFxbv0olcRAaU9i2//9BIxtMVSgxbgZ1h+okcoZo8TBDVTAeENftcd5cerqqadO6+8ZJNyilwM19PuvBaYUKkCo2gHFXC5o3sP1EKirMFAuhdQl3fvhkxWtPoj1EE/Zn/vY/t7lO1vgeiNifQzbiCW57TT3BZZrG8WkNLynbILnNW+mmgUxYGocgQb7TyZq2gTbQQaQK89lU38hkv', 'sudoversion': '1.8.27', 'swapfree': '1.94 GiB', 'swapfree_mb': 1987.0234375, 'swapsize': '3.82 GiB', 'swapsize_mb': 3907.99609375, 'swh_hostname': {'fqdn': 'worker12.softwareheritage.org', 'short': 'worker12', 'internal_fqdn': 'worker12.internal.softwareheritage.org'}, 'system_uptime': {'days': 111, 'hours': 2667, 'seconds': 9604662, 'uptime': '111 days'}, 'systemd': True, 'systemd_internal_services': {'systemd-boot-check-no-failures.service': 'disabled', 'systemd-fsck-root.service': 'enabled-runtime', 'systemd-network-generator.service': 'disabled', 'systemd-networkd-wait-online.service': 'disabled', 'systemd-networkd.service': 'disabled', 'systemd-pstore.service': 'enabled', 'systemd-remount-fs.service': 'enabled-runtime', 'systemd-resolved.service': 'disabled', 'systemd-time-wait-sync.service': 'disabled', 'systemd-timesyncd.service': 'enabled'}, 'systemd_version': '245', 'timezone': 'UTC', 'uptime': '111 days', 'uptime_days': 111, 'uptime_hours': 2667, 'uptime_seconds': 9604662, 'uuid': 'b6b32cc5-3200-4495-bc10-8437448a62e1', 'vcsrepo_svn_ver': '1.10.4', 'virtual': 'kvm', 'clientcert': 'worker12.softwareheritage.org', 'clientversion': '5.5.10', 'clientnoop': False}, 'timestamp': '2020-09-02T12:02:16.556372346+00:00', 'expiration': '2020-09-02T12:32:16.557022245+00:00'} +VM worker12.softwareheritage.org already exists diff --git a/sysadmin/netbox-importer/vm.json b/sysadmin/netbox-importer/vm.json new file mode 100644 index 0000000..dcdf353 --- /dev/null +++ b/sysadmin/netbox-importer/vm.json @@ -0,0 +1,574 @@ +{ + "name": "worker12.softwareheritage.org", + "values": { + "agent_specified_environment": "production", + "apt_dist_updates": 1, + "apt_has_dist_updates": True, + "apt_has_updates": True, + "apt_package_dist_updates": [ + "python3-swh.storage" + ], + "apt_package_security_dist_updates": [], + "apt_package_security_updates": [], + "apt_package_updates": [ + "python3-swh.storage" + ], + "apt_reboot_required": True, + "apt_security_dist_updates": 0, + "apt_security_updates": 0, + "apt_update_last_success": 1599044647, + "apt_updates": 1, + "architecture": "amd64", + "augeas": { + "version": "1.11.0" + }, + "augeasversion": "1.11.0", + "bios_release_date": "04/01/2014", + "bios_vendor": "SeaBIOS", + "bios_version": "rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org", + "blockdevice_sda_model": "QEMU HARDDISK", + "blockdevice_sda_size": 42949672960, + "blockdevice_sda_vendor": "QEMU", + "blockdevice_sr0_model": "QEMU DVD-ROM", + "blockdevice_sr0_size": 1073741312, + "blockdevice_sr0_vendor": "QEMU", + "blockdevices": "sr0,sda", + "cassandracmsheapnewsize": 300, + "cassandracmsmaxheapsize": 3003, + "cassandraheapnewsize": 300, + "cassandramaxheapsize": 3003, + "chassistype": "Other", + "disks": { + "sda": { + "model": "QEMU HARDDISK", + "size": "40.00 GiB", + "size_bytes": 42949672960, + "vendor": "QEMU" + }, + "sr0": { + "model": "QEMU DVD-ROM", + "size": "1.00 GiB", + "size_bytes": 1073741312, + "vendor": "QEMU" + } + }, + "dmi": { + "bios": { + "release_date": "04/01/2014", + "vendor": "SeaBIOS", + "version": "rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org" + }, + "chassis": { + "type": "Other" + }, + "manufacturer": "QEMU", + "product": { + "name": "Standard PC (i440FX + PIIX, + 1996)", "uuid": "b6b32cc5-3200-4495-bc10-8437448a62e1" + } + }, + "docker_home_dirs": { + "root": "/root", + "daemon": "/usr/sbin", + "bin": "/bin", + "sys": "/dev", + "sync": "/bin", + "games": "/usr/games", + "man": "/var/cache/man", + "lp": "/var/spool/lpd", + "mail": "/var/mail", + "news": "/var/spool/news", + "uucp": "/var/spool/uucp", + "proxy": "/bin", + "www-data": "/var/www", + "backup": "/var/backups", + "list": "/var/list", + "irc": "/var/run/ircd", + "gnats": "/var/lib/gnats", + "nobody": "/nonexistent", + "systemd-timesync": "/run/systemd", + "systemd-network": "/run/systemd/netif", + "systemd-resolve": "/run/systemd/resolve", + "_apt": "/nonexistent", + "messagebus": "/var/run/dbus", + "sshd": "/run/sshd", + "puppet": "/var/lib/puppet", + "olasd": "/home/olasd", + "swhworker": "/home/swhworker", + "swhstorage": "/home/swhstorage", + "swhwebapp": "/home/swhwebapp", + "swhbackup": "/home/swhbackup", + "rdicosmo": "/home/rdicosmo", + "swhteamannex": "/home/swhteamannex", + "swhscheduler": "/home/swhscheduler", + "jbertran": "/home/jbertran", + "qcampos": "/home/qcampos", + "gitorious": "/home/gitorious", + "fiendish": "/home/fiendish", + "morane": "/home/morane", + "ssushant": "/home/ssushant", + "anlambert": "/home/anlambert", + "grouss": "/home/grouss", + "swhdeposit": "/home/swhdeposit", + "journalbeat": "/var/lib/journalbeat", + "ntp": "/home/ntp", + "postfix": "/var/spool/postfix", + "statd": "/var/lib/nfs", + "zack": "/home/zack", + "ardumont": "/home/ardumont", + "seirl": "/home/seirl", + "ftigeot": "/home/ftigeot", + "unbound": "/var/lib/unbound", + "munin": "/var/lib/munin", + "nagios": "/var/lib/nagios", + "swhvault": "/home/swhvault", + "prometheus": "/var/lib/prometheus", + "ddouard": "/home/ddouard", + "vlorentz": "/home/vlorentz", + "haltode": "/home/haltode", + "_rpc": "/run/rpcbind", + "systemd-coredump": "/", + "danseraf": "/home/danseraf", + "aeviso": "/home/aeviso" + }, + "domain": "softwareheritage.org", + "facterversion": "3.11.0", + "filesystems": "btrfs,ext2,ext3,ext4,hfs,hfsplus,jfs,minix,msdos,qnx4,ufs,vfat,xfs", + "fips_enabled": False, + "fqdn": "worker12.softwareheritage.org", + "gid": "root", + "hardwareisa": "unknown", + "hardwaremodel": "x86_64", + "hostname": "worker12", + "icinga2_puppet_hostcert": "/var/lib/puppet/ssl/certs/worker12.softwareheritage.org.pem", + "icinga2_puppet_hostprivkey": "/var/lib/puppet/ssl/private_keys/worker12.softwareheritage.org.pem", + "icinga2_puppet_localcacert": "/var/lib/puppet/ssl/certs/ca.pem", + "id": "root", + "identity": { + "gid": 0, + "group": "root", + "privileged": True, + "uid": 0, + "user": "root" + }, + "interfaces": "ens18,ens19,lo", + "ipaddress": "128.93.193.38", + "ipaddress6": "fe80: : 5054:ff:fe1a: 85b5", + "ipaddress6_ens18": "fe80: : 5054:ff:fe1a: 85b5", + "ipaddress6_ens19": "fe80: : 5054:ff:fe1a: 85b4", + "ipaddress6_lo": ": : 1", + "ipaddress_ens18": "128.93.193.38", + "ipaddress_ens19": "192.168.100.38", + "ipaddress_lo": "127.0.0.1", + "is_pe": False, + "is_virtual": True, + "kernel": "Linux", + "kernelmajversion": "4.19", + "kernelrelease": "4.19.0-9-amd64", + "kernelversion": "4.19.0", + "letsencrypt_directory": {}, + "load_averages": { + "15m": 4.04, + "1m": 4.41, + "5m": 4.24 + }, + "location": "sesi_rocquencourt", + "lsbdistcodename": "buster", + "lsbdistdescription": "Debian GNU/Linux 10 (buster)", + "lsbdistid": "Debian", + "lsbdistrelease": "10", + "lsbmajdistrelease": "10", + "macaddress": "52: 54: 00: 1a: 85:b5", + "macaddress_ens18": "52: 54: 00: 1a: 85:b5", + "macaddress_ens19": "52: 54: 00: 1a: 85:b4", + "manufacturer": "QEMU", + "memory": { + "swap": { + "available": "1.94 GiB", + "available_bytes": 2083545088, + "capacity": "49.15%", + "total": "3.82 GiB", + "total_bytes": 4097830912, + "used": "1.88 GiB", + "used_bytes": 2014285824 + }, + "system": { + "available": "5.96 GiB", + "available_bytes": 6394142720, + "capacity": "49.23%", + "total": "11.73 GiB", + "total_bytes": 12593876992, + "used": "5.77 GiB", + "used_bytes": 6199734272 + } + }, + "memoryfree": "5.96 GiB", + "memoryfree_mb": 6097.9296875, + "memorysize": "11.73 GiB", + "memorysize_mb": 12010.45703125, + "mountpoints": { + "/": { + "available": "28.30 GiB", + "available_bytes": 30384320512, + "capacity": "20.26%", + "device": "/dev/mapper/worker12--vg-root", + "filesystem": "ext4", + "options": [ + "rw", + "relatime", + "errors=remount-ro" + ], + "size": "35.49 GiB", + "size_bytes": 38104956928, + "used": "7.19 GiB", + "used_bytes": 7720636416 + }, + "/dev/shm": { + "available": "5.86 GiB", + "available_bytes": 6295560192, + "capacity": "0.02%", + "device": "tmpfs", + "filesystem": "tmpfs", + "options": [ + "rw", + "nosuid", + "nodev" + ], + "size": "5.86 GiB", + "size_bytes": 6296936448, + "used": "1.31 MiB", + "used_bytes": 1376256 + }, + "/run": { + "available": "1.17 GiB", + "available_bytes": 1258819584, + "capacity": "0.05%", + "device": "tmpfs", + "filesystem": "tmpfs", + "options": [ + "rw", + "nosuid", + "noexec", + "relatime", + "size=1229872k", + "mode=755" + ], + "size": "1.17 GiB", + "size_bytes": 1259388928, + "used": "556.00 KiB", + "used_bytes": 569344 + }, + "/run/lock": { + "available": "5.00 MiB", + "available_bytes": 5242880, + "capacity": "0%", + "device": "tmpfs", + "filesystem": "tmpfs", + "options": [ + "rw", + "nosuid", + "nodev", + "noexec", + "relatime", + "size=5120k" + ], + "size": "5.00 MiB", + "size_bytes": 5242880, + "used": "0 bytes", + "used_bytes": 0 + }, + "/sys/fs/cgroup": { + "available": "5.86 GiB", + "available_bytes": 6296936448, + "capacity": "0%", + "device": "tmpfs", + "filesystem": "tmpfs", + "options": [ + "ro", + "nosuid", + "nodev", + "noexec", + "mode=755" + ], + "size": "5.86 GiB", + "size_bytes": 6296936448, + "used": "0 bytes", + "used_bytes": 0 + } + }, + "mounts": [ + "/" + ], + "mtu_ens18": 1500, + "mtu_ens19": 1500, + "mtu_lo": 65536, + "mysql_server_id": 115189, + "netmask": "255.255.255.0", + "netmask6": "ffff:ffff:ffff:ffff: :", + "netmask6_ens18": "ffff:ffff:ffff:ffff: :", + "netmask6_ens19": "ffff:ffff:ffff:ffff: :", + "netmask6_lo": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "netmask_ens18": "255.255.255.0", + "netmask_ens19": "255.255.255.0", + "netmask_lo": "255.0.0.0", + "network": "128.93.193.0", + "network6": "fe80: :", + "network6_ens18": "fe80: :", + "network6_ens19": "fe80: :", + "network6_lo": ": : 1", + "network_ens18": "128.93.193.0", + "network_ens19": "192.168.100.0", + "network_lo": "127.0.0.0", + "networking": { + "domain": "softwareheritage.org", + "fqdn": "worker12.softwareheritage.org", + "hostname": "worker12", + "interfaces": { + "ens18": { + "bindings": [ + { + "address": "128.93.193.38", + "netmask": "255.255.255.0", + "network": "128.93.193.0" + } + ], + "bindings6": [ + { + "address": "fe80: : 5054:ff:fe1a: 85b5", + "netmask": "ffff:ffff:ffff:ffff: :", + "network": "fe80: :" + } + ], + "ip": "128.93.193.38", + "ip6": "fe80: : 5054:ff:fe1a: 85b5", + "mac": "52: 54: 00: 1a: 85:b5", + "mtu": 1500, + "netmask": "255.255.255.0", + "netmask6": "ffff:ffff:ffff:ffff: :", + "network": "128.93.193.0", + "network6": "fe80: :" + }, + "ens19": { + "bindings": [ + { + "address": "192.168.100.38", + "netmask": "255.255.255.0", + "network": "192.168.100.0" + } + ], + "bindings6": [ + { + "address": "fe80: : 5054:ff:fe1a: 85b4", + "netmask": "ffff:ffff:ffff:ffff: :", + "network": "fe80: :" + } + ], + "ip": "192.168.100.38", + "ip6": "fe80: : 5054:ff:fe1a: 85b4", + "mac": "52: 54: 00: 1a: 85:b4", + "mtu": 1500, + "netmask": "255.255.255.0", + "netmask6": "ffff:ffff:ffff:ffff: :", + "network": "192.168.100.0", + "network6": "fe80: :" + }, + "lo": { + "bindings": [ + { + "address": "127.0.0.1", + "netmask": "255.0.0.0", + "network": "127.0.0.0" + } + ], + "bindings6": [ + { + "address": ": : 1", + "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "network": ": : 1" + } + ], + "ip": "127.0.0.1", + "ip6": ": : 1", + "mtu": 65536, + "netmask": "255.0.0.0", + "netmask6": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "network": "127.0.0.0", + "network6": ": : 1" + } + }, + "ip": "128.93.193.38", + "ip6": "fe80: : 5054:ff:fe1a: 85b5", + "mac": "52: 54: 00: 1a: 85:b5", + "mtu": 1500, + "netmask": "255.255.255.0", + "netmask6": "ffff:ffff:ffff:ffff: :", + "network": "128.93.193.0", + "network6": "fe80: :", + "primary": "ens18" + }, + "operatingsystem": "Debian", + "operatingsystemmajrelease": "10", + "operatingsystemrelease": "10.5", + "os": { + "architecture": "amd64", + "distro": { + "codename": "buster", + "description": "Debian GNU/Linux 10 (buster)", + "id": "Debian", + "release": { + "full": "10", + "major": "10" + } + }, + "family": "Debian", + "hardware": "x86_64", + "name": "Debian", + "release": { + "full": "10.5", + "major": "10", + "minor": "5" + }, + "selinux": { + "enabled": False + } + }, + "osfamily": "Debian", + "package_provider": "apt", + "partitions": { + "/dev/mapper/worker12--vg-root": { + "filesystem": "ext4", + "mount": "/", + "size": "36.18 GiB", + "size_bytes": 38847643648, + "uuid": "6bbeffb1-8ea6-474a-9594-43cadefc4b05" + }, + "/dev/mapper/worker12--vg-swap_1": { + "filesystem": "swap", + "size": "3.82 GiB", + "size_bytes": 4097835008, + "uuid": "1669c3fe-693e-42cb-9f56-453042b20abc" + }, + "/dev/sda1": { + "filesystem": "LVM2_member", + "partuuid": "451d2abb-01", + "size": "40.00 GiB", + "size_bytes": 42948624384, + "uuid": "2vdQbw-w86t-dPeW-qlVQ-686c-M1T4-cjnp4I" + } + }, + "path": "/usr/bin:/bin:/usr/sbin:/sbin", + "physicalprocessorcount": 3, + "processor0": "Common KVM processor", + "processor1": "Common KVM processor", + "processor2": "Common KVM processor", + "processorcount": 3, + "processors": { + "count": 3, + "isa": "unknown", + "models": [ + "Common KVM processor", + "Common KVM processor", + "Common KVM processor" + ], + "physicalcount": 3 + }, + "productname": "Standard PC (i440FX + PIIX, + 1996)", "public_ipaddresses": ["128.93.193.38" + ], + "puppet_environmentpath": "/etc/puppet/code/environments", + "puppet_server": "pergamon.internal.softwareheritage.org", + "puppet_vardir": "/var/lib/puppet", + "puppetversion": "5.5.10", + "root_home": "/root", + "ruby": { + "platform": "x86_64-linux-gnu", + "sitedir": "/usr/local/lib/site_ruby/2.5.0", + "version": "2.5.5" + }, + "rubyplatform": "x86_64-linux-gnu", + "rubysitedir": "/usr/local/lib/site_ruby/2.5.0", + "rubyversion": "2.5.5", + "selinux": False, + "service_provider": "systemd", + "ssh": { + "ecdsa": { + "fingerprints": { + "sha1": "SSHFP 3 1 0a90e0a49258e225ad7fe47a6358725015aafa60", + "sha256": "SSHFP 3 2 b8bbb11c392779d3c54e672eddb83c78e03eb6132c31d34a1e2fa84e0b0dd5f2" + }, + "key": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOyC806UsocgYKtzAMVIn/2YbW2XzHulSGwPR8VuOxuaiWg6ypYG8BgQojALDcITv2158R/q3cimltPxVsXtk8o=", + "type": "ecdsa-sha2-nistp256" + }, + "ed25519": { + "fingerprints": { + "sha1": "SSHFP 4 1 9251ca6b7fcb842332e6a5c11292d149f208b092", + "sha256": "SSHFP 4 2 5170f5ac176cb3bd39ed75f78598fd690cc42e6578e74866d075f4f11c827dbf" + }, + "key": "AAAAC3NzaC1lZDI1NTE5AAAAIHhU8EXMAZlvywOTjGdEEEWeAqKFO1jIBJYN8PUPCMrx", + "type": "ssh-ed25519" + }, + "rsa": { + "fingerprints": { + "sha1": "SSHFP 1 1 c92b48d07978156e5d87d62a3f6a74357a9ad35c", + "sha256": "SSHFP 1 2 6635d211d167d650847867c06b1b89d174f8f1ea3510b258e9d531a933e504e1" + }, + "key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDIb7XDb+JlBsP0OeAxdoOZaVFJGdNz4T5tNLa2dzMlFsghEgNBgTHT/wLcGaCyljYvIKk5SrGWQUvLNrKqoMziGd0y7z7KMCDT0i+seOaMOexXKzslPdcvb63GBmA6hvVwndecFxbv0olcRAaU9i2 //9BIxtMVSgxbgZ1h+okcoZo8TBDVTAeENftcd5cerqqadO6+8ZJNyilwM19PuvBaYUKkCo2gHFXC5o3sP1EKirMFAuhdQl3fvhkxWtPoj1EE/Zn/vY/t7lO1vgeiNifQzbiCW57TT3BZZrG8WkNLynbILnNW+mmgUxYGocgQb7TyZq2gTbQQaQK89lU38hkv", + "type": "ssh-rsa" + } + }, + "ssh_client_version_full": "7.9p1", + "ssh_keys_users": {}, + "ssh_server_version_full": "7.9p1", + "ssh_server_version_major": "7", + "ssh_server_version_release": "7.9", + "sshecdsakey": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOyC806UsocgYKtzAMVIn/2YbW2XzHulSGwPR8VuOxuaiWg6ypYG8BgQojALDcITv2158R/q3cimltPxVsXtk8o=", + "sshed25519key": "AAAAC3NzaC1lZDI1NTE5AAAAIHhU8EXMAZlvywOTjGdEEEWeAqKFO1jIBJYN8PUPCMrx", + "sshfp_ecdsa": "SSHFP 3 1 0a90e0a49258e225ad7fe47a6358725015aafa60\nSSHFP 3 2 b8bbb11c392779d3c54e672eddb83c78e03eb6132c31d34a1e2fa84e0b0dd5f2", + "sshfp_ed25519": "SSHFP 4 1 9251ca6b7fcb842332e6a5c11292d149f208b092\nSSHFP 4 2 5170f5ac176cb3bd39ed75f78598fd690cc42e6578e74866d075f4f11c827dbf", + "sshfp_rsa": "SSHFP 1 1 c92b48d07978156e5d87d62a3f6a74357a9ad35c\nSSHFP 1 2 6635d211d167d650847867c06b1b89d174f8f1ea3510b258e9d531a933e504e1", + "sshrsakey": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDIb7XDb+JlBsP0OeAxdoOZaVFJGdNz4T5tNLa2dzMlFsghEgNBgTHT/wLcGaCyljYvIKk5SrGWQUvLNrKqoMziGd0y7z7KMCDT0i+seOaMOexXKzslPdcvb63GBmA6hvVwndecFxbv0olcRAaU9i2//9BIxtMVSgxbgZ1h+okcoZo8TBDVTAeENftcd5cerqqadO6+8ZJNyilwM19PuvBaYUKkCo2gHFXC5o3sP1EKirMFAuhdQl3fvhkxWtPoj1EE/Zn/vY/t7lO1vgeiNifQzbiCW57TT3BZZrG8WkNLynbILnNW+mmgUxYGocgQb7TyZq2gTbQQaQK89lU38hkv", + "sudoversion": "1.8.27", + "swapfree": "1.94 GiB", + "swapfree_mb": 1987.0234375, + "swapsize": "3.82 GiB", + "swapsize_mb": 3907.99609375, + "swh_hostname": { + "fqdn": "worker12.softwareheritage.org", + "short": "worker12", + "internal_fqdn": "worker12.internal.softwareheritage.org" + }, + "system_uptime": { + "days": 111, + "hours": 2667, + "seconds": 9604662, + "uptime": "111 days" + }, + "systemd": True, + "systemd_internal_services": { + "systemd-boot-check-no-failures.service": "disabled", + "systemd-fsck-root.service": "enabled-runtime", + "systemd-network-generator.service": "disabled", + "systemd-networkd-wait-online.service": "disabled", + "systemd-networkd.service": "disabled", + "systemd-pstore.service": "enabled", + "systemd-remount-fs.service": "enabled-runtime", + "systemd-resolved.service": "disabled", + "systemd-time-wait-sync.service": "disabled", + "systemd-timesyncd.service": "enabled" + }, + "systemd_version": "245", + "timezone": "UTC", + "uptime": "111 days", + "uptime_days": 111, + "uptime_hours": 2667, + "uptime_seconds": 9604662, + "uuid": "b6b32cc5-3200-4495-bc10-8437448a62e1", + "vcsrepo_svn_ver": "1.10.4", + "virtual": "kvm", + "clientcert": "worker12.softwareheritage.org", + "clientversion": "5.5.10", + "clientnoop": False +}, +"timestamp": "2020-09-02T12:02:16.556372346+00:00", +"expiration": "2020-09-02T12:32:16.557022245+00:00" +}