CasperSecurity

Current Path : /lib/python3/dist-packages/cloudinit/config/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/config/__pycache__/cc_chef.cpython-310.pyc

o

쑛h�4�
@s�UdZddlZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZm
Z
ddlmZddlmZddlmZddlmZdd	lmZd
ZdZdZd
dd�ZdZdZdZdZdddedded
ddddd�Z e!dg�Z"e!gd��Z#e!ge �$��e"�e#�d�d�d�d �d!��Z%d"Z&d#Z'd$Z(e�)e*�Z+d%d&ged'gd(�Z,ee-d)<d*d+�Z.d,d-�Z/d.d/�Z0d0e1d1ed2ed3e2d4df
d5d6�Z3d7d8�Z4d9ed3e2fd:d;�Z5	dDd9efd<d=�Z6d2efd>d?�Z7d4ee1fd@dA�Z8dBdC�Z9dS)Ez7Chef: module that configures, starts and installs chef.�N)�List)�subp�
temp_utils�	templater�
url_helper�util)�Cloud)�Config)�
MetaSchema)�Distro)�
PER_ALWAYS�1.8)�	/etc/chefz
/var/log/chefz
/var/lib/chef�/var/chef/cache�/var/chef/backupz
/var/run/chef)rrr)z/var/cache/chefz/var/backups/chefz#https://www.chef.io/chef/install.sh�z/etc/chef/validation.pemz/etc/chef/firstboot.jsonz:verify_nonez:infoz/var/log/chef/client.logz/etc/chef/client.pemz/var/run/chef/client.pidT)�ssl_verify_mode�	log_level�log_location�validation_key�validation_cert�
client_key�json_attribs�file_cache_path�file_backup_path�pid_file�	show_time�encrypted_data_bag_secretr)rrrrrrr�
server_url�	node_name�environment�validation_name�chef_licensez/etc/chef/client.rbz/usr/bin/chef-client)z-dz-i�1800z-s�20�cc_chef�all�chef)�id�distros�	frequency�activate_by_schema_keys�metacCs6tj|ddd�}|rtj�t�rt�t�dSdSdS)N�delete_validation_post_execF��default)r�get_cfg_option_bool�os�path�isfile�CHEF_VALIDATION_PEM_PATH�unlink)�chef_cfg�
delete_pem�r8�:/usr/lib/python3/dist-packages/cloudinit/config/cc_chef.py�
post_run_chefgs��r:c	Cs�t��}|��D]-\}}|tvrt�d|�q|dur d||<q|tvr-t�||�||<qt�	||�||<q|�
t��tj	|d|d�tj	|ddd�|d|dd��|S)	Nz'Skipping unknown chef template key '%s'rr.r �_defaultrr!)�generated_byrr rr!)�CHEF_RB_TPL_DEFAULTS�copy�items�CHEF_RB_TPL_KEYS�LOG�debug�CHEF_RB_TPL_BOOL_KEYSrr0�get_cfg_option_str�update�make_header)�iidr6�params�k�vr8r8r9�get_template_paramsos.
����rKc	Cs�t��D]A\}}tj�|�rEt�|�D]1}tj�tj�||��r-t�dtj�||�|�qt�dtj�||�|�t	�
tj�||�|�qqdS)zEMigrate legacy chef backup and cache directories to new config paths.z4Ignoring migration of %s. File already exists in %s.zMoving %s to %s.N)�CHEF_DIR_MIGRATIONr?r1r2�exists�listdir�joinrArB�shutil�move)�old_dir�migrated_dir�filenamer8r8r9�migrate_chef_config_dirs�s$����rU�name�cfg�cloud�args�returncCsd|vrt�d|�dS|d}t�|d�}|stt�}t�|t�D]}t�	|�q"t
�|�dt�}|�d�}|rQ|dkrEt�
||�ntj�|�sQt�d|�tj|d	td
�}	|�d�}
|
r�t|j���}t||�}t�}
|��D]\}}|tvr�|r�|
�tj�|��qst�|
�t� |
|	|�nt�d|	�tj|d
t!d
�}|s�t�"d�n,i}d|vr�|d|d<d|vr�|d}t|�#��D]}||||<q�t�
|t$�%|��tj&|ddd
�}t'�(t)�}|r�|r�t*||�}n
|r�tj&|ddd
�}nd}|�rt+|�t,|�dSdS)z'Handler method activated by cloud-init.r'z8Skipping module named %s, no 'chef' key in configurationN�directoriesrr�systemzWchef validation_cert provided as 'system', but validation_key path '%s' does not exist.�config_pathr.zchef_client.rbz&No template found, not rendering to %s�firstboot_pathz7First boot path empty, not writing first boot json file�run_list�initial_attributes�
force_installF�exec)-rArBr�get_cfg_option_list�list�	CHEF_DIRS�	itertools�chain�REQUIRED_CHEF_DIRS�
ensure_dirrU�getr4�
write_filer1r2r3�warningrD�CHEF_RB_PATH�get_template_filename�str�
datasource�get_instance_idrK�setr?�CHEF_RB_TPL_PATH_KEYS�add�dirname�ensure_dirsr�render_to_file�CHEF_FB_PATH�info�keys�json�dumpsr0r�is_exe�CHEF_EXEC_PATH�install_chef�run_chefr:)rVrWrXrYr6�	chef_dirs�d�	vkey_path�vcert�cfg_filename�template_fnrGrH�param_pathsrIrJ�fb_filename�initial_jsonr`ra�	installed�runr8r8r9�handle�s~�
��

�
��
�r�cCs�t�d�tg}d|vr6|d}t|ttf�r|�|�nt|t�r(|�|�nt�	dt
|��|�t�n|�t�tj|dd�dS)NzRunning chef-client�exec_argumentszRUnknown type %s provided for chef 'exec_arguments' expected list, tuple, or stringF��capture)
rArBr~�
isinstancerd�tuple�extendro�appendrl�type�CHEF_EXEC_DEF_ARGSr)r6�cmd�cmd_argsr8r8r9r��s

�
r��distrocKs�|��}|�dd�}tj|��dd��'}tj�||�}|�d|�t	j
||dd�tjd
d|i|��Wd	�S1s=wYd	S)aWrite blob to a tempfile, and call subp with args, kwargs. Then cleanup.

    'basename' as a kwarg allows providing the basename for the file.
    The 'args' argument to subp will be updated with the full path to the
    filename as the first argument.
    �basename�	subp_blobT)�dir�	needs_exeri�)�moderYNr8)r>�popr�tempdir�get_tmp_exec_pathr1r2rO�insertrrkr)�blobr�rY�kwargsr��tmpd�tmpfr8r8r9�subp_blob_in_tempfiles�$�r�cCsP|durt}|durt}|durg}nd|g}tj||d�j}t|||ddd�S)agInstall an omnibus unified package from url.

    @param url: URL where blob of chef content may be downloaded. Defaults to
        OMNIBUS_URL.
    @param retries: Number of retries to perform when attempting to read url.
        Defaults to OMNIBUS_URL_RETRIES
    @param omnibus_version: Optional version string to require for omnibus
        install.
    Nz-v)�url�retrieszchef-omnibus-installF)r�r�rYr�r�)�OMNIBUS_URL�OMNIBUS_URL_RETRIESr�readurl�contentsr�)r�r�r��omnibus_versionrY�contentr8r8r9�install_chef_from_omnibus's�r�cCs�t�|dd�}tj|ddd�}|dkr2t�|dd�}t�|dt�}t|||j�tj|dd	d�}|S|dkr?|j�d
g�|S|dkr\t�|d�}t|jt�|d
�t�|d�|d�|St	�
d|�d}|S)N�install_type�packagesrbFr.�gems�version�ruby_versionTr'�omnibusr��omnibus_url�omnibus_url_retries)r�r�r�r�zUnknown chef install type '%s')rrDr0�RUBY_VERSION_DEFAULT�install_chef_from_gemsr��install_packagesr��get_cfg_option_intrArl)rXr6r�r��chef_versionr�r�r8r8r9rFs6����

�	�rcCs&d|d|g}|dkr|�d�|S)Nzruby%sz
ruby%s-devr
)zlibopenssl-ruby1.8zrubygems1.8)r�)r��pkgsr8r8r9�get_ruby_packagesgs
r�c
Cs�|�t|��tj�d�st�d|d�tj�d�s#t�d|d�|r9tjdddd|dd	d
ddg	d
d�dStjgd�d
d�dS)N�/usr/bin/gemz/usr/bin/gem%sz
/usr/bin/rubyz/usr/bin/ruby%s�installr'z-v %s�--no-ri�	--no-rdoc�--bindir�/usr/bin�-qFr�)r�r�r'r�r�r�r�r�)r�r�r1r2rMr�sym_linkr)r�r�r�r8r8r9r�os.�
�

�r�)NNN):�__doc__rfr{�loggingr1rP�typingr�	cloudinitrrrrr�cloudinit.cloudr�cloudinit.configr	�cloudinit.config.schemar
�cloudinit.distrosr�cloudinit.settingsrr�rerhrLr�r�r4rxr=�	frozensetrCrsrzr@rmr~r��	getLogger�__name__rAr,�__annotations__r:rKrUrordr�r�r�r�rr�r�r8r8r8r9�<module>s���
����������
�#X�
�!
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY