Skip to content

Commit

Permalink
Support sles 15 sp2 distro (#2272)
Browse files Browse the repository at this point in the history
* support sles 15 sp2 distro

* copy of waagent file

* setting bin file
  • Loading branch information
nagworld9 authored Jun 17, 2021
1 parent 9da99cc commit 68559c5
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 2 deletions.
53 changes: 53 additions & 0 deletions bin/py3/waagent
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env python3
#
# Azure Linux Agent
#
# Copyright 2015 Microsoft Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Requires Python 2.6 and Openssl 1.0+
#
# Implements parts of RFC 2131, 1541, 1497 and
# http://msdn.microsoft.com/en-us/library/cc227282%28PROT.10%29.aspx
# http://msdn.microsoft.com/en-us/library/cc227259%28PROT.13%29.aspx
#

import os
import sys

if sys.version_info[0] == 2:
import imp
else:
import importlib

if __name__ == '__main__' :
import azurelinuxagent.agent as agent
"""
Invoke main method of agent
"""
agent.main()

if __name__ == 'waagent':
"""
Load waagent2.0 to support old version of extensions
"""
if sys.version_info[0] == 3:
raise ImportError("waagent2.0 doesn't support python3")
bin_path = os.path.dirname(os.path.abspath(__file__))
agent20_path = os.path.join(bin_path, "waagent2.0")
if not os.path.isfile(agent20_path):
raise ImportError("Can't load waagent")
agent20 = imp.load_source('waagent', agent20_path)
__all__ = dir(agent20)

16 changes: 16 additions & 0 deletions init/sles/waagent.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[Unit]
Description=Azure Linux Agent
Wants=network-online.target sshd.service sshd-keygen.service
After=network-online.target

ConditionFileIsExecutable=/usr/sbin/waagent
ConditionPathExists=/etc/waagent.conf

[Service]
Type=simple
ExecStart=/usr/bin/python3 -u /usr/sbin/waagent -daemon
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
24 changes: 22 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ def set_bin_files(data_files, dest, src=None):
src = ["bin/waagent", "bin/waagent2.0"]
data_files.append((dest, src))


def set_conf_files(data_files, dest="/etc", src=None):
if src is None:
src = ["config/waagent.conf"]
Expand Down Expand Up @@ -96,8 +95,8 @@ def get_data_files(name, version, fullname): # pylint: disable=R0912
systemd_dir_path = osutil.get_systemd_unit_file_install_path()
agent_bin_path = osutil.get_agent_bin_path()

set_bin_files(data_files, dest=agent_bin_path)
if name == 'redhat' or name == 'centos': # pylint: disable=R1714
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files)
set_logrotate_files(data_files)
set_udev_files(data_files)
Expand All @@ -110,28 +109,33 @@ def get_data_files(name, version, fullname): # pylint: disable=R0912
# TODO this is a mitigation to systemctl bug on 7.1
set_sysv_files(data_files)
elif name == 'arch':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/arch/waagent.conf"])
set_udev_files(data_files)
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/arch/waagent.service"])
elif name == 'coreos':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, dest="/usr/share/oem",
src=["config/coreos/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files)
set_files(data_files, dest="/usr/share/oem",
src=["init/coreos/cloud-config.yml"])
elif "Clear Linux" in fullname:
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, dest="/usr/share/defaults/waagent",
src=["config/clearlinux/waagent.conf"])
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/clearlinux/waagent.service"])
elif name == 'mariner':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, dest="/etc",
src=["config/mariner/waagent.conf"])
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/mariner/waagent.service"])
elif name == 'ubuntu':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/ubuntu/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files)
Expand All @@ -153,6 +157,7 @@ def get_data_files(name, version, fullname): # pylint: disable=R0912
"init/ubuntu/azure-vmextensions.slice"
])
elif name == 'suse' or name == 'opensuse': # pylint: disable=R1714
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/suse/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files)
Expand All @@ -165,19 +170,32 @@ def get_data_files(name, version, fullname): # pylint: disable=R0912
else:
# sles 12+ and openSUSE 13.2+ use systemd
set_systemd_files(data_files, dest=systemd_dir_path)
elif name == 'sles': # sles 15+ distro named as sles
set_bin_files(data_files, dest=agent_bin_path,
src = ["bin/py3/waagent", "bin/waagent2.0"])
set_conf_files(data_files, src=["config/suse/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files)
# sles 15+ uses systemd and python3
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/sles/waagent.service"])
elif name == 'freebsd':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/freebsd/waagent.conf"])
set_freebsd_rc_files(data_files)
elif name == 'openbsd':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/openbsd/waagent.conf"])
set_openbsd_rc_files(data_files)
elif name == 'debian':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/debian/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files, dest="/lib/udev/rules.d")
if debian_has_systemd():
set_systemd_files(data_files, dest=systemd_dir_path)
elif name == 'iosxe':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files, src=["config/iosxe/waagent.conf"])
set_logrotate_files(data_files)
set_udev_files(data_files)
Expand All @@ -186,11 +204,13 @@ def get_data_files(name, version, fullname): # pylint: disable=R0912
# TODO this is a mitigation to systemctl bug on 7.1
set_sysv_files(data_files)
elif name == 'openwrt':
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files)
set_logrotate_files(data_files)
set_sysv_files(data_files, dest='/etc/init.d', src=["init/openwrt/waagent"])
else:
# Use default setting
set_bin_files(data_files, dest=agent_bin_path)
set_conf_files(data_files)
set_logrotate_files(data_files)
set_udev_files(data_files)
Expand Down

0 comments on commit 68559c5

Please sign in to comment.