PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/deb_apache.py |
""" Support for Apache Please note: The functions in here are Debian-specific. Placing them in this separate file will allow them to load only on Debian-based systems, while still loading under the ``apache`` namespace. """ import logging import os import salt.utils.decorators.path import salt.utils.path log = logging.getLogger(__name__) __virtualname__ = "apache" __deprecated__ = ( 3009, "apache", "https://github.com/salt-extensions/saltext-apache", ) SITE_ENABLED_DIR = "/etc/apache2/sites-enabled" def __virtual__(): """ Only load the module if apache is installed """ cmd = _detect_os() if salt.utils.path.which(cmd) and __grains__["os_family"] == "Debian": return __virtualname__ return (False, "apache execution module not loaded: apache not installed.") def _detect_os(): """ Apache commands and paths differ depending on packaging """ # TODO: Add pillar support for the apachectl location if __grains__["os_family"] == "RedHat": return "apachectl" elif __grains__["os_family"] == "Debian": return "apache2ctl" else: return "apachectl" def check_site_enabled(site): """ Checks to see if the specific site symlink is in /etc/apache2/sites-enabled. This will only be functional on Debian-based operating systems (Ubuntu, Mint, etc). CLI Examples: .. code-block:: bash salt '*' apache.check_site_enabled example.com salt '*' apache.check_site_enabled example.com.conf """ if site.endswith(".conf"): site_file = site else: site_file = f"{site}.conf" if os.path.islink(f"{SITE_ENABLED_DIR}/{site_file}"): return True elif site == "default" and os.path.islink(f"{SITE_ENABLED_DIR}/000-{site_file}"): return True else: return False def a2ensite(site): """ Runs a2ensite for the given site. This will only be functional on Debian-based operating systems (Ubuntu, Mint, etc). CLI Examples: .. code-block:: bash salt '*' apache.a2ensite example.com """ ret = {} command = ["a2ensite", site] try: status = __salt__["cmd.retcode"](command, python_shell=False) except Exception as e: # pylint: disable=broad-except return e ret["Name"] = "Apache2 Enable Site" ret["Site"] = site if status == 1: ret["Status"] = f"Site {site} Not found" elif status == 0: ret["Status"] = f"Site {site} enabled" else: ret["Status"] = status return ret def a2dissite(site): """ Runs a2dissite for the given site. This will only be functional on Debian-based operating systems (Ubuntu, Mint, etc). CLI Examples: .. code-block:: bash salt '*' apache.a2dissite example.com """ ret = {} command = ["a2dissite", site] try: status = __salt__["cmd.retcode"](command, python_shell=False) except Exception as e: # pylint: disable=broad-except return e ret["Name"] = "Apache2 Disable Site" ret["Site"] = site if status == 256: ret["Status"] = f"Site {site} Not found" elif status == 0: ret["Status"] = f"Site {site} disabled" else: ret["Status"] = status return ret def check_mod_enabled(mod): """ Checks to see if the specific mod symlink is in /etc/apache2/mods-enabled. This will only be functional on Debian-based operating systems (Ubuntu, Mint, etc). CLI Examples: .. code-block:: bash salt '*' apache.check_mod_enabled status salt '*' apache.check_mod_enabled status.load salt '*' apache.check_mod_enabled status.conf """ if mod.endswith(".load") or mod.endswith(".conf"): mod_file = mod else: mod_file = f"{mod}.load" return os.path.islink(f"/etc/apache2/mods-enabled/{mod_file}") def a2enmod(mod): """ Runs a2enmod for the given mod. This will only be functional on Debian-based operating systems (Ubuntu, Mint, etc). CLI Examples: .. code-block:: bash salt '*' apache.a2enmod vhost_alias """ ret = {} command = ["a2enmod", mod] try: status = __salt__["cmd.retcode"](command, python_shell=False) except Exception as e: # pylint: disable=broad-except return e ret["Name"] = "Apache2 Enable Mod" ret["Mod"] = mod if status == 1: ret["Status"] = f"Mod {mod} Not found" elif status == 0: ret["Status"] = f"Mod {mod} enabled" else: ret["Status"] = status return ret def a2dismod(mod): """ Runs a2dismod for the given mod. This will only be functional on Debian-based operating systems (Ubuntu, Mint, etc). CLI Examples: .. code-block:: bash salt '*' apache.a2dismod vhost_alias """ ret = {} command = ["a2dismod", mod] try: status = __salt__["cmd.retcode"](command, python_shell=False) except Exception as e: # pylint: disable=broad-except return e ret["Name"] = "Apache2 Disable Mod" ret["Mod"] = mod if status == 256: ret["Status"] = f"Mod {mod} Not found" elif status == 0: ret["Status"] = f"Mod {mod} disabled" else: ret["Status"] = status return ret def check_conf_enabled(conf): """ .. versionadded:: 2016.3.0 Checks to see if the specific conf symlink is in /etc/apache2/conf-enabled. This will only be functional on Debian-based operating systems (Ubuntu, Mint, etc). CLI Examples: .. code-block:: bash salt '*' apache.check_conf_enabled security salt '*' apache.check_conf_enabled security.conf """ if conf.endswith(".conf"): conf_file = conf else: conf_file = f"{conf}.conf" return os.path.islink(f"/etc/apache2/conf-enabled/{conf_file}") @salt.utils.decorators.path.which("a2enconf") def a2enconf(conf): """ .. versionadded:: 2016.3.0 Runs a2enconf for the given conf. This will only be functional on Debian-based operating systems (Ubuntu, Mint, etc). CLI Examples: .. code-block:: bash salt '*' apache.a2enconf security """ ret = {} command = ["a2enconf", conf] try: status = __salt__["cmd.retcode"](command, python_shell=False) except Exception as e: # pylint: disable=broad-except return e ret["Name"] = "Apache2 Enable Conf" ret["Conf"] = conf if status == 1: ret["Status"] = f"Conf {conf} Not found" elif status == 0: ret["Status"] = f"Conf {conf} enabled" else: ret["Status"] = status return ret @salt.utils.decorators.path.which("a2disconf") def a2disconf(conf): """ .. versionadded:: 2016.3.0 Runs a2disconf for the given conf. This will only be functional on Debian-based operating systems (Ubuntu, Mint, etc). CLI Examples: .. code-block:: bash salt '*' apache.a2disconf security """ ret = {} command = ["a2disconf", conf] try: status = __salt__["cmd.retcode"](command, python_shell=False) except Exception as e: # pylint: disable=broad-except return e ret["Name"] = "Apache2 Disable Conf" ret["Conf"] = conf if status == 256: ret["Status"] = f"Conf {conf} Not found" elif status == 0: ret["Status"] = f"Conf {conf} disabled" else: ret["Status"] = status return ret