BYPASS SHELL BY ./RAZORGANZ
Server: nginx/1.20.1
System: Linux iZdzfnv9mwfppeZ 5.10.134-19.2.al8.x86_64 #1 SMP Wed Oct 29 22:47:09 CST 2025 x86_64
User: apache (48)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/cloudinit/config/__pycache__/cc_puppet.cpython-36.pyc
3

�q�h�6�	@sDUdZddlZddlZddlZddlmZddlmZddlZddl	m
Z
mZmZm
Z
mZddlmZddlmZddlmZmZdd	lmZmZdd
lmZdZdgZd$ZdZdddeegeed�ed�gdgd�Zeee�Zej e!�Z"Gdd�d�Z#ee$d�dd�Z%dd�Z&edddfed�dd �Z'e$eee(dd!�d"d#�Z)dS)%z+Puppet: Install, configure and start puppet�N)�StringIO)�dedent)�helpers�subp�
temp_utils�
url_helper�util)�Cloud)�Config)�
MetaSchema�get_meta_doc)�ALL_DISTROS�Distro)�PER_INSTANCEzKhttps://raw.githubusercontent.com/puppetlabs/install-puppet/main/install.shz--test�puppet-agent�puppeta>This module handles puppet installation and configuration. If the ``puppet``
key does not exist in global configuration, no action will be taken. If a
config entry for ``puppet`` is present, then by default the latest version of
puppet will be installed. If the ``puppet`` config key exists in the config
archive, this module will attempt to start puppet even if no installation was
performed.

The module also provides keys for configuring the new puppet 4 paths and
installing the puppet package from the puppetlabs repositories:
https://docs.puppet.com/puppet/4.2/reference/whered_it_go.html
The keys are ``package_name``, ``conf_file``, ``ssl_dir`` and
``csr_attributes_path``. If unset, their values will default to
ones that work with puppet 3.x and with distributions that ship modified
puppet 4.x that uses the old paths.
Z	cc_puppetZPuppetz#Install, configure and start puppeta`            puppet:
                install: true
                version: "7.7.0"
                install_type: "aio"
                collection: "puppet7"
                aio_install_url: 'https://git.io/JBhoQ'
                cleanup: true
                conf_file: "/etc/puppet/puppet.conf"
                ssl_dir: "/var/lib/puppet/ssl"
                csr_attributes_path: "/etc/puppet/csr_attributes.yaml"
                exec: true
                exec_args: ['--test']
                conf:
                    agent:
                        server: "puppetserver.example.org"
                        certname: "%i.%f"
                    ca_cert: |
                        -----BEGIN CERTIFICATE-----
                        MIICCTCCAXKgAwIBAgIBATANBgkqhkiG9w0BAQUFADANMQswCQYDVQQDDAJjYTAe
                        Fw0xMDAyMTUxNzI5MjFaFw0xNTAyMTQxNzI5MjFaMA0xCzAJBgNVBAMMAmNhMIGf
                        MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu7Q40sm47/E1Pf+r8AYb/V/FWGPgc
                        b014OmNoX7dgCxTDvps/h8Vw555PdAFsW5+QhsGr31IJNI3kSYprFQcYf7A8tNWu
                        1MASW2CfaEiOEi9F1R3R4Qlz4ix+iNoHiUDTjazw/tZwEdxaQXQVLwgTGRwVa+aA
                        qbutJKi93MILLwIDAQABo3kwdzA4BglghkgBhvhCAQ0EKxYpUHVwcGV0IFJ1Ynkv
                        T3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwDwYDVR0TAQH/BAUwAwEB/zAd
                        BgNVHQ4EFgQUu4+jHB+GYE5Vxo+ol1OAhevspjAwCwYDVR0PBAQDAgEGMA0GCSqG
                        SIb3DQEBBQUAA4GBAH/rxlUIjwNb3n7TXJcDJ6MMHUlwjr03BDJXKb34Ulndkpaf
                        +GAlzPXWa7bO908M9I8RnPfvtKnteLbvgTK+h+zX1XCty+S2EQWk29i2AdoqOTxb
                        hppiGMp0tT5Havu4aceCXiy2crVcudj3NFciy8X66SoECemW9UYDCb9T5D0d
                        -----END CERTIFICATE-----
                csr_attributes:
                    custom_attributes:
                        1.2.840.113549.1.9.7: 342thbjkt82094y0uthhor289jnqthpc2290
                    extension_requests:
                        pp_uuid: ED803750-E3C7-44F5-BB08-41A04433FE2E
                        pp_image_name: my_ami_image
                        pp_preshared_key: 342thbjkt82094y0uthhor289jnqthpc2290
            z�            puppet:
                install_type: "packages"
                package_name: "puppet"
                exec: false
            )�id�name�title�descriptionZdistrosZ	frequencyZexamplesZactivate_by_schema_keysc@seZdZdd�ZdS)�PuppetConstantscCs8||_||_tjj|d�|_tjj|jd�|_||_dS)NZcertszca.pem)�	conf_path�ssl_dir�os�path�join�ssl_cert_dir�
ssl_cert_path�csr_attributes_path)�selfZpuppet_conf_fileZpuppet_ssl_dirr�r �/usr/lib/python3.6/cc_puppet.py�__init__rs
zPuppetConstants.__init__N)�__name__�
__module__�__qualname__r"r r r r!rqsr)�cloud�actioncCsdd}xBtD]:}y|jj||�d��|}PWq
tjk
rBYq
Xq
W|s`tjd|djt��dS)z8Attempts to perform action on one of the puppet services�z.servicez0Could not '%s' any of the following services: %sz, N)�PUPPET_PACKAGE_NAMES�distroZmanage_servicer�ProcessExecutionError�LOG�warningr)r&r'Zservice_managed�puppet_namer r r!�_manage_puppet_servicess

r/cCstj|dd|g�\}}|j�S)z�Get the config value for a given setting using `puppet config print`
    :param puppet_bin: path to puppet binary
    :param setting: setting to query
    �config�print)r�rstrip)�
puppet_binZsetting�out�_r r r!�get_config_value�sr6T)r*c	Cs�g}|dk	rd|g}|dk	r(|d|g7}|r6|dg7}tj|dd�j}tj|j�dd��4}tjj|d	�}t	j
||d
d�tj|g|dd
�SQRXdS)a�Install puppet-agent from the puppetlabs repositories using the one-shot
    shell script

    :param distro: Instance of Distro
    :param url: URL from where to download the install script
    :param version: version to install, blank defaults to latest
    :param collection: collection to install, blank defaults to latest
    :param cleanup: whether to purge the puppetlabs repo after installation
    Nz-vz-cz	--cleanup�)�urlZretriesT)�dirZ	needs_exezpuppet-installi�)�modeF)�capture)rZreadurl�contentsrZtempdirZget_tmp_exec_pathrrrr�
write_filer)	r*r8�version�
collection�cleanup�argsZcontentZtmpdZtmpfr r r!�install_puppet_aio�s
rB)r�cfgr&rA�returncCsd|krtjd|�dS|d}tj|dd�}tj|dd�}tj|dd�}tj|dd�}tj|d	d�}	tj|d
dd�}
tj|d
dd�}tj|dtd�}|dkr�d}
d}d}nd}
d}d}tj|d|�}|r�|r�tjd�n�|�r�tjd|r�|nd|�|dk�r||dk�rjxBtD]:}y|jj	||f�|}PWnt
jk
�rHYnX�qW|�sztjddjt��n|jj	||f�n.|dk�r�t
|j||||	�ntjd|�d}
tj|dt|d��}tj|dt|d��}tj|dt|d��}t|||�}d |k�r>tj|j�}tj�}d!d"�|j�D�}d#j|�}|jt|�|jd$�x�|d j�D]�\}}|d%k�r�tj|jd&�tj|j|
d�tj|j�tj|j|
d�tj|j|�tj|j|
d�nXxV|j�D]J\}}|d'k�r�|jd(tj ��}|jd)|j!��}|j"�}|j#|||��q�Wtj$|jd*|j�tj|j|j%���qNWd|k�rdtj|j&t'j(|ddd+��|�rtt)|d,�|
�r
tjd-�|d.g}d/|k�r�|d/}t*|t+t,f��r�|j-|�n6t*|t.��r�|j-|j/��ntjd0t0|��|j-t1�n
|j-t1�t
j
|dd1�|�rt)|d2�dS)3Nrz9Skipping module named %s, no 'puppet' configuration found�installTr>r?�install_typeZpackagesr@�execF)�defaultZ
start_service�aio_install_urlZaio�rootz/opt/puppetlabs/bin/puppetzpuppet-agent�package_namez@Puppet install set to false but version supplied, doing nothing.z'Attempting to install puppet %s from %sZlatestz+No installable puppet package in any of: %sz, z Unknown puppet install type '%s'�	conf_filer0rZssldirrZcsr_attributesZconfcSsg|]}|j��qSr )�lstrip)�.0�ir r r!�
<listcomp>szhandle.<locals>.<listcomp>�
)�sourceZca_certi�Zcertnamez%fz%iz%s.old)Zdefault_flow_style�enablezRunning puppet-agentZagentZ	exec_argszOUnknown type %s provided for puppet 'exec_args' expected list, tuple, or string)r;�start)2r,�debugrZget_cfg_option_boolZget_cfg_option_str�AIO_INSTALL_URLr-r)r*Zinstall_packagesrr+rrBr6rZ	load_filerrZDefaultingConfigParser�
splitlinesZ	read_filer�itemsZ
ensure_dirrZchownbynamerr=r�replace�socketZgetfqdnZget_instance_id�lower�set�renameZ	stringifyr�yaml�dumpr/�
isinstance�list�tuple�extend�str�split�type�PUPPET_AGENT_DEFAULT_ARGS)rrCr&rAZ
puppet_cfgrEr>r?rFr@ZrunZ
start_puppetdrIZpuppet_userr3Zpuppet_packagerKr.rLrrZp_constantsr<Z
puppet_configZ
cleaned_linesZcleaned_contentsZcfg_name�o�v�cmdZcmd_argsr r r!�handle�s�

















rk)rr)*�__doc__ZloggingrrZ�ior�textwraprr^Z	cloudinitrrrrrZcloudinit.cloudr	Zcloudinit.configr
Zcloudinit.config.schemarrZcloudinit.distrosr
rZcloudinit.settingsrrVrgr)ZMODULE_DESCRIPTION�metaZ	getLoggerr#r,rrdr/r6rBrarkr r r r!�<module>	sJ'