3 \�mec8 � @ sd U d Z ddlZddlZddlZddlmZ ddlmZ ddlm Z ddl mZmZ ddl Z ddlmZmZmZmZmZ ddlmZ dd lmZ dd lmZmZ ddlmZmZmZ ddlm Z d Z!dgZ"d&Z#dZ$ddde$ege e d�e d�gdgd�Z%e%ee%�Z ej&e'�Z(G dd� d�Z)ee*d�dd�Z+dd� Z,e!dddfed �d!d"�Z-e*eee.dd#�d$d%�Z/dS )'z+Puppet: Install, configure and start puppet� N)�suppress)�StringIO)�dedent)�List�Union)�helpers�subp� temp_utils� url_helper�util)�Cloud)�Config)� MetaSchema�get_meta_doc)�ALL_DISTROS�Distro�PackageInstallerError)�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 @ s e Zd Zdd� ZdS )�PuppetConstantsc C s8 || _ || _tjj|d�| _tjj| jd�| _|| _d S )NZcertszca.pem)� conf_path�ssl_dir�os�path�join�ssl_cert_dir� ssl_cert_path�csr_attributes_path)�selfZpuppet_conf_fileZpuppet_ssl_dirr"