Discover Flatcar Linux properly for hostname (#69627)
To avoid issues with Flatcar Container Linux being unable to be found, detect Flatcar distro name especially for hostname, just like CoreOS Container Linux was supported. See also https://github.com/ansible/ansible/issues/69516
This commit is contained in:
parent
d7f61cbc28
commit
598e3392a9
7 changed files with 56 additions and 0 deletions
2
changelogs/fragments/69516_flatcar_distribution.yml
Normal file
2
changelogs/fragments/69516_flatcar_distribution.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- Added support for Flatcar Container Linux in distribution and hostname modules. (https://github.com/ansible/ansible/pull/69627)
|
|
@ -37,6 +37,7 @@ filelist = [
|
||||||
'/etc/altlinux-release',
|
'/etc/altlinux-release',
|
||||||
'/etc/os-release',
|
'/etc/os-release',
|
||||||
'/etc/coreos/update.conf',
|
'/etc/coreos/update.conf',
|
||||||
|
'/etc/flatcar/update.conf',
|
||||||
'/usr/lib/os-release',
|
'/usr/lib/os-release',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,7 @@ class DistributionFiles:
|
||||||
{'path': '/etc/sourcemage-release', 'name': 'SMGL'},
|
{'path': '/etc/sourcemage-release', 'name': 'SMGL'},
|
||||||
{'path': '/usr/lib/os-release', 'name': 'ClearLinux'},
|
{'path': '/usr/lib/os-release', 'name': 'ClearLinux'},
|
||||||
{'path': '/etc/coreos/update.conf', 'name': 'Coreos'},
|
{'path': '/etc/coreos/update.conf', 'name': 'Coreos'},
|
||||||
|
{'path': '/etc/flatcar/update.conf', 'name': 'Flatcar'},
|
||||||
{'path': '/etc/os-release', 'name': 'NA'},
|
{'path': '/etc/os-release', 'name': 'NA'},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -402,6 +403,21 @@ class DistributionFiles:
|
||||||
|
|
||||||
return True, coreos_facts
|
return True, coreos_facts
|
||||||
|
|
||||||
|
def parse_distribution_file_Flatcar(self, name, data, path, collected_facts):
|
||||||
|
flatcar_facts = {}
|
||||||
|
distro = get_distribution()
|
||||||
|
|
||||||
|
if distro.lower() == 'flatcar':
|
||||||
|
if not data:
|
||||||
|
return False, flatcar_facts
|
||||||
|
release = re.search("^GROUP=(.*)", data)
|
||||||
|
if release:
|
||||||
|
flatcar_facts['distribution_release'] = release.group(1).strip('"')
|
||||||
|
else:
|
||||||
|
return False, flatcar_facts
|
||||||
|
|
||||||
|
return True, flatcar_facts
|
||||||
|
|
||||||
def parse_distribution_file_ClearLinux(self, name, data, path, collected_facts):
|
def parse_distribution_file_ClearLinux(self, name, data, path, collected_facts):
|
||||||
clear_facts = {}
|
clear_facts = {}
|
||||||
if "clearlinux" not in name.lower():
|
if "clearlinux" not in name.lower():
|
||||||
|
@ -453,6 +469,7 @@ class Distribution(object):
|
||||||
{'path': '/etc/sourcemage-release', 'name': 'SMGL'},
|
{'path': '/etc/sourcemage-release', 'name': 'SMGL'},
|
||||||
{'path': '/usr/lib/os-release', 'name': 'ClearLinux'},
|
{'path': '/usr/lib/os-release', 'name': 'ClearLinux'},
|
||||||
{'path': '/etc/coreos/update.conf', 'name': 'Coreos'},
|
{'path': '/etc/coreos/update.conf', 'name': 'Coreos'},
|
||||||
|
{'path': '/etc/flatcar/update.conf', 'name': 'Flatcar'},
|
||||||
{'path': '/etc/os-release', 'name': 'NA'},
|
{'path': '/etc/os-release', 'name': 'NA'},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -677,6 +677,12 @@ class CoreosHostname(Hostname):
|
||||||
strategy_class = SystemdStrategy
|
strategy_class = SystemdStrategy
|
||||||
|
|
||||||
|
|
||||||
|
class FlatcarHostname(Hostname):
|
||||||
|
platform = 'Linux'
|
||||||
|
distribution = 'Flatcar'
|
||||||
|
strategy_class = SystemdStrategy
|
||||||
|
|
||||||
|
|
||||||
class ScientificHostname(Hostname):
|
class ScientificHostname(Hostname):
|
||||||
platform = 'Linux'
|
platform = 'Linux'
|
||||||
distribution = 'Scientific'
|
distribution = 'Scientific'
|
||||||
|
|
|
@ -70,6 +70,9 @@ class TestGetDistribution:
|
||||||
with patch('ansible.module_utils.distro.id', return_value="debian"):
|
with patch('ansible.module_utils.distro.id', return_value="debian"):
|
||||||
assert get_distribution() == "Debian"
|
assert get_distribution() == "Debian"
|
||||||
|
|
||||||
|
with patch('ansible.module_utils.distro.id', return_value="flatcar"):
|
||||||
|
assert get_distribution() == "Flatcar"
|
||||||
|
|
||||||
with patch('ansible.module_utils.distro.id', return_value="linuxmint"):
|
with patch('ansible.module_utils.distro.id', return_value="linuxmint"):
|
||||||
assert get_distribution() == "Linuxmint"
|
assert get_distribution() == "Linuxmint"
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,9 @@ class TestGetDistribution:
|
||||||
with patch('ansible.module_utils.distro.id', return_value="debian"):
|
with patch('ansible.module_utils.distro.id', return_value="debian"):
|
||||||
assert get_distribution() == "Debian"
|
assert get_distribution() == "Debian"
|
||||||
|
|
||||||
|
with patch('ansible.module_utils.distro.id', return_value="flatcar"):
|
||||||
|
assert get_distribution() == "Flatcar"
|
||||||
|
|
||||||
with patch('ansible.module_utils.distro.id', return_value="linuxmint"):
|
with patch('ansible.module_utils.distro.id', return_value="linuxmint"):
|
||||||
assert get_distribution() == "Linuxmint"
|
assert get_distribution() == "Linuxmint"
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
"name": "Flatcar Container Linux",
|
||||||
|
"input": {
|
||||||
|
"/usr/lib/os-release": "NAME=\"Flatcar Container Linux by Kinvolk\"\nID=flatcar\nID_LIKE=coreos\nVERSION=2492.0.0\nVERSION_ID=2492.0.0\nBUILD_ID=2020-04-28-2210\nPRETTY_NAME=\"Flatcar Container Linux by Kinvolk 2492.0.0 (Rhyolite)\"\nANSI_COLOR=\"38;5;75\"\nHOME_URL=\"https://flatcar-linux.org/\"\nBUG_REPORT_URL=\"https://issues.flatcar-linux.org\"",
|
||||||
|
"/etc/lsb-release": "DISTRIB_ID=\"Flatcar Container Linux by Kinvolk\"\nDISTRIB_RELEASE=2492.0.0\nDISTRIB_CODENAME=\"Rhyolite\"\nDISTRIB_DESCRIPTION=\"Flatcar Container Linux by Kinvolk 2492.0.0 (Rhyolite)\""
|
||||||
|
},
|
||||||
|
"platform.dist": ["", "", ""],
|
||||||
|
"distro": {
|
||||||
|
"codename": "Rhyolite",
|
||||||
|
"id": "flatcar",
|
||||||
|
"id_like": "coreos",
|
||||||
|
"name": "Flatcar",
|
||||||
|
"version": "2492.0.0",
|
||||||
|
"version_best": "2492.0.0",
|
||||||
|
"os_release_info": {},
|
||||||
|
"lsb_release_info": {}
|
||||||
|
},
|
||||||
|
"platform.release": "",
|
||||||
|
"result": {
|
||||||
|
"distribution": "Flatcar",
|
||||||
|
"distribution_major_version": "2492",
|
||||||
|
"distribution_version": "2492.0.0"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue