Commits vergleichen
Keine gemeinsamen Commits. „stable“ und „v0.1.0“ haben vollständig unterschiedliche Historien.
14 geänderte Dateien mit 21 neuen und 114 gelöschten Zeilen
2
.gitignore
gevendort
2
.gitignore
gevendort
|
@ -162,4 +162,4 @@ cython_debug/
|
||||||
|
|
||||||
# ---> Ansible
|
# ---> Ansible
|
||||||
*.retry
|
*.retry
|
||||||
*.tar.gz
|
|
||||||
|
|
|
@ -5,35 +5,6 @@ stop50.ansible-netcup Release Notes
|
||||||
.. contents:: Topics
|
.. contents:: Topics
|
||||||
|
|
||||||
|
|
||||||
v0.1.3
|
|
||||||
======
|
|
||||||
|
|
||||||
Release Summary
|
|
||||||
---------------
|
|
||||||
|
|
||||||
changed owner of collection
|
|
||||||
|
|
||||||
v0.1.2
|
|
||||||
======
|
|
||||||
|
|
||||||
Release Summary
|
|
||||||
---------------
|
|
||||||
|
|
||||||
added additional_info parameter
|
|
||||||
|
|
||||||
Minor Changes
|
|
||||||
-------------
|
|
||||||
|
|
||||||
- added additional_info to the config. this allows addtional data to be added to the inventory
|
|
||||||
|
|
||||||
v0.1.1
|
|
||||||
======
|
|
||||||
|
|
||||||
Release Summary
|
|
||||||
---------------
|
|
||||||
|
|
||||||
added nickname_is_hostname config to let the nickname be the hostname of the host
|
|
||||||
|
|
||||||
v0.1.0
|
v0.1.0
|
||||||
======
|
======
|
||||||
|
|
||||||
|
|
5
Makefile
5
Makefile
|
@ -6,10 +6,7 @@ changelog:
|
||||||
antsibull-changelog generate
|
antsibull-changelog generate
|
||||||
|
|
||||||
docs: format
|
docs: format
|
||||||
update-doc
|
./update_doc
|
||||||
|
|
||||||
release: changelog docs
|
release: changelog docs
|
||||||
ansible-galaxy collection build
|
ansible-galaxy collection build
|
||||||
|
|
||||||
upload: release
|
|
||||||
./upload.sh
|
|
||||||
|
|
|
@ -20,4 +20,4 @@ plugins:
|
||||||
strategy: {}
|
strategy: {}
|
||||||
test: {}
|
test: {}
|
||||||
vars: {}
|
vars: {}
|
||||||
version: 0.1.3
|
version: 0.1.0
|
||||||
|
|
|
@ -11,25 +11,3 @@ releases:
|
||||||
name: scp
|
name: scp
|
||||||
namespace: null
|
namespace: null
|
||||||
release_date: '2023-11-26'
|
release_date: '2023-11-26'
|
||||||
0.1.1:
|
|
||||||
changes:
|
|
||||||
release_summary: added nickname_is_hostname config to let the nickname be the
|
|
||||||
hostname of the host
|
|
||||||
fragments:
|
|
||||||
- scp-hostname.yml
|
|
||||||
release_date: '2023-12-10'
|
|
||||||
0.1.2:
|
|
||||||
changes:
|
|
||||||
minor_changes:
|
|
||||||
- added additional_info to the config. this allows addtional data to be added
|
|
||||||
to the inventory
|
|
||||||
release_summary: added additional_info parameter
|
|
||||||
fragments:
|
|
||||||
- scp-additional_info.yml
|
|
||||||
release_date: '2023-12-10'
|
|
||||||
0.1.3:
|
|
||||||
changes:
|
|
||||||
release_summary: changed owner of collection
|
|
||||||
fragments:
|
|
||||||
- owner-change.yml
|
|
||||||
release_date: '2023-12-30'
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
release_summary: fixed scp.py
|
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
release_summary: changed owner of collection
|
|
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
release_summary: added additional_info parameter
|
|
||||||
minor_changes:
|
|
||||||
- added additional_info to the config. this allows addtional data to be added to the inventory
|
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
release_summary: added nickname_is_hostname config to let the nickname be the hostname of the host
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
namespace: sebastian
|
namespace: sebastian
|
||||||
name: netcup
|
name: netcup
|
||||||
version: 0.1.5
|
version: 0.1.0
|
||||||
readme: README.md
|
readme: README.md
|
||||||
authors:
|
authors:
|
||||||
- Sebastian Tobie
|
- Sebastian Tobie
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
---
|
---
|
||||||
plugin: ansible.netcup.scp
|
plugin: sebastian.netcup.scp
|
||||||
userid:
|
userid:
|
||||||
password:
|
password:
|
||||||
nickname_is_hostname: false
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
from xmlrpc.client import ServerProxy
|
from ansible.plugins.inventory import BaseInventoryPlugin
|
||||||
|
|
||||||
from ansible.inventory.data import InventoryData
|
from ansible.inventory.data import InventoryData
|
||||||
from ansible.parsing.dataloader import DataLoader
|
from ansible.parsing.dataloader import DataLoader
|
||||||
from ansible.plugins.inventory import BaseInventoryPlugin
|
from xmlrpc.client import ServerProxy
|
||||||
from ansible.utils.display import Display
|
|
||||||
from zeep import Client, Settings
|
from zeep import Client, Settings
|
||||||
|
from ansible.utils.display import Display
|
||||||
|
|
||||||
|
|
||||||
display = Display()
|
display = Display()
|
||||||
|
|
||||||
|
|
||||||
class InventoryModule(BaseInventoryPlugin):
|
class InventoryModule(BaseInventoryPlugin):
|
||||||
NAME = "sebastian.netcup.scp"
|
NAME = "sebastian.netcup.scp"
|
||||||
loader: DataLoader
|
loader: DataLoader
|
||||||
|
@ -32,11 +31,9 @@ class InventoryModule(BaseInventoryPlugin):
|
||||||
inventory.add_group("netcup_offline")
|
inventory.add_group("netcup_offline")
|
||||||
inventory.add_child("netcup", "netcup_online")
|
inventory.add_child("netcup", "netcup_online")
|
||||||
inventory.add_child("netcup", "netcup_offline")
|
inventory.add_child("netcup", "netcup_offline")
|
||||||
additional = self.config.get("additional_info", dict())
|
|
||||||
for hostname in self.service.getVServers(**self.args):
|
for hostname in self.service.getVServers(**self.args):
|
||||||
serverinfo = self.service.getVServerInformation(vservername=hostname, **self.args)
|
serverinfo = self.service.getVServerInformation(vservername=hostname, **self.args)
|
||||||
nickname = serverinfo["vServerNickname"] or serverinfo["vServerName"]
|
nickname = serverinfo["vServerNickname"] or serverinfo["vServerName"]
|
||||||
ai = additional.get(nickname, dict())
|
|
||||||
group = "netcup_online"
|
group = "netcup_online"
|
||||||
if serverinfo["status"] != "online":
|
if serverinfo["status"] != "online":
|
||||||
group = "netcup_offline"
|
group = "netcup_offline"
|
||||||
|
@ -44,33 +41,25 @@ class InventoryModule(BaseInventoryPlugin):
|
||||||
inventory.add_host(nickname, group)
|
inventory.add_host(nickname, group)
|
||||||
else:
|
else:
|
||||||
inventory.add_child(group, nickname)
|
inventory.add_child(group, nickname)
|
||||||
interfaces = dict()
|
interfaces = []
|
||||||
ai_interfaces = ai.pop("interfaces", dict())
|
|
||||||
for interface in serverinfo["serverInterfaces"]:
|
for interface in serverinfo["serverInterfaces"]:
|
||||||
interfaces[interface["mac"]] = dict()
|
interfaces.append(
|
||||||
interfaces[interface["mac"]].update(
|
dict(
|
||||||
driver=interface["driver"],
|
driver=interface["driver"],
|
||||||
id=interface["id"],
|
id=interface["id"],
|
||||||
ipv4=interface["ipv4IP"],
|
ipv4=interface["ipv4IP"],
|
||||||
ipv6=interface["ipv6IP"],
|
ipv6=interface["ipv6IP"],
|
||||||
mac=interface["mac"],
|
mac=interface["mac"],
|
||||||
)
|
)
|
||||||
interfaces[interface["mac"]].update(ai_interfaces.pop(interface["mac"], dict()))
|
)
|
||||||
if len(interface["ipv4IP"]) > 0:
|
|
||||||
ansible_host = interface["ipv4IP"][0]
|
|
||||||
inventory.set_variable(nickname, "interfaces", interfaces)
|
inventory.set_variable(nickname, "interfaces", interfaces)
|
||||||
inventory.set_variable(nickname, "memory", serverinfo["memory"])
|
inventory.set_variable(nickname, "memory", serverinfo["memory"])
|
||||||
inventory.set_variable(nickname, "name", serverinfo["vServerName"])
|
inventory.set_variable(nickname, "name", serverinfo["vServerName"])
|
||||||
inventory.set_variable(nickname, "cores", serverinfo["cpuCores"])
|
inventory.set_variable(nickname, "cores", serverinfo["cpuCores"])
|
||||||
inventory.set_variable(nickname, "up", serverinfo["status"] == "online")
|
inventory.set_variable(nickname, "up", serverinfo["status"] == "online")
|
||||||
if ai.get("ansible_host", False):
|
|
||||||
ansible_host = ai.pop("ansible_host")
|
|
||||||
elif self.config.get("nickname_is_hostname", False):
|
|
||||||
ansible_host = nickname
|
|
||||||
inventory.set_variable(nickname, "ansible_host", ansible_host)
|
|
||||||
|
|
||||||
|
|
||||||
DOCUMENTATION = """
|
DOCUMENTATION = r'''
|
||||||
name: sebastian.netcup.scp
|
name: sebastian.netcup.scp
|
||||||
plugin_type: inventory
|
plugin_type: inventory
|
||||||
short_description: Returns Ansible inventory from netcup SCP
|
short_description: Returns Ansible inventory from netcup SCP
|
||||||
|
@ -89,16 +78,4 @@ DOCUMENTATION = """
|
||||||
- API password to authenticate againt the api.
|
- API password to authenticate againt the api.
|
||||||
- This is different from you SCP password and must be set indipendently from the SCP password
|
- This is different from you SCP password and must be set indipendently from the SCP password
|
||||||
required: true
|
required: true
|
||||||
nickname_is_hostname:
|
'''
|
||||||
version_added: 0.1.1
|
|
||||||
description: use the nickname as hostname
|
|
||||||
type: bool
|
|
||||||
required: false
|
|
||||||
default: false
|
|
||||||
additional_info:
|
|
||||||
version_added: 0.1.2
|
|
||||||
description:
|
|
||||||
required: false
|
|
||||||
default: {}
|
|
||||||
type: dict
|
|
||||||
"""
|
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
|
ansible-module>=0.1.3
|
||||||
zeep
|
zeep
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
user=$(yq -r .namespace galaxy.yml)
|
|
||||||
package=$(yq -r .name galaxy.yml)
|
|
||||||
version=$(yq -r .version galaxy.yml)
|
|
||||||
printf "Namespace: %s\nPackage: %s\nVersion: %s\nfile name: %s\n" $user $package $version "$user-$package-$version.tar.gz"
|
|
||||||
curl -u sebastian --upload-file "${user}-${package}-${version}.tar.gz" "https://gitea.sebastian-tobie.de/api/packages/ansible/generic/${package}/${version}/${user}-${package}-${version}.tar.gz"
|
|
Laden …
Tabelle hinzufügen
In neuem Issue referenzieren