403Webshell
Server IP : 23.254.227.96  /  Your IP : 216.73.216.7
Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64
User : viralblo ( 1001)
PHP Version : 8.1.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/self/root/usr/lib/python3.6/site-packages/cloudinit/config/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/usr/lib/python3.6/site-packages/cloudinit/config/__pycache__/cc_chef.cpython-36.pyc
3

?q,d�?�
@s�UdZddlZddlZddlZddlmZddlmZmZm	Z	m
Z
mZddlm
Z
mZddlmZdZedd	d
ddd
g�Zedg�ZdZdZdZdZdZdZdddeddedddddd�Zedg�Zeddddd d!d"g�Zeej ��Z!e!j"e�e!j"e�e!j"d#d$d%d&d'g�ee!�Z!d(Z#d)Z$ed*d+d,d-d.g�Z%eZ&d/gZ'd0d1d2ed3�e'ed4�ge&d5�Z(e
(ee(�Zd6d7�Z)d8d9�Z*d:d;�Z+d<d=�Z,d>d?�Z-dHd@dA�Z.dBdC�Z/dDdE�Z0dFdG�Z1dS)IaD	
Chef
----
**Summary:** module that configures, starts and installs chef.

This module enables chef to be installed (from packages or
from gems, or from omnibus). Before this occurs chef configurations are
written to disk (validation.pem, client.pem, firstboot.json, client.rb),
and needed chef folders/directories are created (/etc/chef and /var/log/chef
and so-on). Then once installing proceeds correctly if configured chef will
be started (in daemon mode or in non-daemon mode) and then once that has
finished (if ran in non-daemon mode this will be when chef finishes
converging, if ran in daemon mode then no further actions are possible since
chef will have forked into its own process) then a post run function can
run that can do finishing activities (such as removing the validation pem
file).

**Internal name:** ``cc_chef``

**Module frequency:** per always

**Supported distros:** all

**Config keys**::

    chef:
       directories: (defaulting to /etc/chef, /var/log/chef, /var/lib/chef,
                     /var/cache/chef, /var/backups/chef, /run/chef)
       validation_cert: (optional string to be written to file validation_key)
                        special value 'system' means set use existing file
       validation_key: (optional the path for validation_cert. default
                        /etc/chef/validation.pem)
       firstboot_path: (path to write run_list and initial_attributes keys that
                        should also be present in this configuration, defaults
                        to /etc/chef/firstboot.json)
       exec: boolean to run or not run chef (defaults to false, unless
                                             a gem installed is requested
                                             where this will then default
                                             to true)

    chef.rb template keys (if falsey, then will be skipped and not
                           written to /etc/chef/client.rb)

    chef:
      client_key:
      encrypted_data_bag_secret:
      environment:
      file_backup_path:
      file_cache_path:
      json_attribs:
      log_level:
      log_location:
      node_name:
      omnibus_url:
      omnibus_url_retries:
      omnibus_version:
      pid_file:
      server_url:
      show_time:
      ssl_verify_mode:
      validation_cert:
      validation_key:
      validation_name:
�N)�dedent)�subp�
temp_utils�	templater�
url_helper�util)�
MetaSchema�get_meta_doc)�
PER_ALWAYSz1.8z	/etc/chefz
/var/log/chefz
/var/lib/chefz/var/cache/chefz/var/backups/chefz
/var/run/chefz#https://www.chef.io/chef/install.sh�z/etc/chef/validation.pemz#/etc/chef/encrypted_data_bag_secret�_defaultz/etc/chef/firstboot.jsonz:verify_nonez:infoz/var/log/chef/client.logz/etc/chef/client.pemz/var/run/chef/client.pidT)Zssl_verify_modeZ	log_level�log_location�validation_key�validation_cert�
client_key�json_attribs�file_cache_pathZfile_backup_path�pid_file�	show_time�encrypted_data_bag_secretrr
rrrrrr�
server_url�	node_name�environment�validation_nameZchef_licensez/etc/chef/client.rbz/usr/bin/chef-clientz-dz-iZ1800z-sZ20�allZcc_chefZChefz0module that configures, starts and installs chefa        This module enables chef to be installed (from packages,
        gems, or from omnibus). Before this occurs, chef configuration is
        written to disk (validation.pem, client.pem, firstboot.json,
        client.rb), and required directories are created (/etc/chef and
        /var/log/chef and so-on). If configured, chef will be
        installed and started in either daemon or non-daemon mode.
        If run in non-daemon mode, post run actions are executed to do
        finishing activities such as removing validation.pem.a�
        chef:
          directories:
            - /etc/chef
            - /var/log/chef
          validation_cert: system
          install_type: omnibus
          initial_attributes:
            apache:
              prefork:
                maxclients: 100
              keepalive: off
          run_list:
            - recipe[apache2]
            - role[db]
          encrypted_data_bag_secret: /etc/chef/encrypted_data_bag_secret
          environment: _default
          log_level: :auto
          omnibus_url_retries: 2
          server_url: https://chef.yourorg.com:4000
          ssl_verify_mode: :verify_peer
          validation_name: yourorg-validator)�id�name�title�description�distrosZexamples�	frequencycCs.tj|ddd�}|r*tjjt�r*tjt�dS)NZdelete_validation_post_execF)�default)r�get_cfg_option_bool�os�path�isfile�CHEF_VALIDATION_PEM_PATH�unlink)�chef_cfg�logZ
delete_pem�r*�/usr/lib/python3.6/cc_chef.py�
post_run_chef�sr,cCs�tj�}xf|j�D]Z\}}|tkr0|jd|�q|dkrBd||<q|tkr\tj||�||<qtj||�||<qW|j	tj
�tj|d|d�tj|ddd�|d|dd��|S)	Nz'Skipping unknown chef template key '%s'r)r!rrrr)Zgenerated_byrrrr)�CHEF_RB_TPL_DEFAULTS�copy�items�CHEF_RB_TPL_KEYS�debug�CHEF_RB_TPL_BOOL_KEYSrr"�get_cfg_option_str�updateZmake_header)�iidr(r)�params�k�vr*r*r+�get_template_params�s&


r9cCsd|kr|jd|�dS|d}tj|d�}|s8tt�}xtj|t�D]}tj|�qFW|j	dt
�}|j	d�}	|	r�|	dkr�tj||	�ntj
j|�s�|jd|�|jd	�}
|
�rt|jj��}t|||�}t�}
x2|j�D]&\}}|tko�|r�|
jtj
j|��q�Wtj|
�tj|
t|�n|jd
t�tj|dtd�}|�sL|j d
�nbi}d|k�rf|d|d<d|k�r�|d}x"t|j!��D]}||||<�q�Wtj|t"j#|��tj$|ddd�}t%j&t'�}|�s�|�r�t(|||�}n|�r�tj$|ddd�}nd}|�rt)||�t*||�dS)z'Handler method activated by cloud-init.�chefz8Skipping module named %s, no 'chef' key in configurationNZdirectoriesrr�systemzWchef validation_cert provided as 'system', but validation_key path '%s' does not exist.zchef_client.rbz&No template found, not rendering to %sZfirstboot_path)r!z7First boot path empty, not writing first boot json fileZrun_list�initial_attributes�
force_installF�exec)+r1rZget_cfg_option_list�list�	CHEF_DIRS�	itertools�chain�REQUIRED_CHEF_DIRSZ
ensure_dir�getr&�
write_filer#r$r%�warningZget_template_filename�strZ
datasourceZget_instance_idr9�setr/�CHEF_RB_TPL_PATH_KEYS�add�dirnameZensure_dirsrZrender_to_file�CHEF_RB_PATHr3�CHEF_FB_PATH�info�keys�json�dumpsr"rZis_exe�CHEF_EXEC_PATH�install_chef�run_chefr,)rZcfg�cloudr)Z_argsr(Z	chef_dirs�dZ	vkey_pathZvcertZtemplate_fnr5r6Zparam_pathsr7r8Zfb_filenameZinitial_jsonr<r=Z	installed�runr*r*r+�handle�sj






rXcCs�|jd�tg}d|krl|d}t|ttf�r:|j|�qvt|t�rP|j|�qv|jdt	|��|jt
�n
|jt
�tj|dd�dS)NzRunning chef-clientZexec_argumentszRUnknown type %s provided for chef 'exec_arguments' expected list, tuple, or stringF)�capture)r1rR�
isinstancer?�tuple�extendrG�appendrF�type�CHEF_EXEC_DEF_ARGSr)r(r)�cmdZcmd_argsr*r*r+rTKs



rTcOs�|jdd�}t|�dkr(d|kr(t�g}tjdd��f}tjj||�}d|krd|gt|d�|d<nt|�}|g|d|d<t	j
||dd�tj||�SQRXd	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.
    �basenameZ	subp_blobr�argsT)Z	needs_exei�)�modeN)�pop�lenr[rZtempdirr#r$�joinr?rrEr)�blobrb�kwargsraZtmpdZtmpfr*r*r+�subp_blob_in_tempfileasricCsN|dkrt}|dkrt}|dkr&g}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)rgrbrarY)�OMNIBUS_URL�OMNIBUS_URL_RETRIESrZreadurl�contentsri)rjrk�omnibus_versionrbZcontentr*r*r+�install_chef_from_omnibuszs
rpcCs�tj|dd�}tj|ddd�}|dkrbtj|dd�}tj|dt�}t|||j�tj|dd	d�}nZ|dkrx|jjd�nD|dkr�tj|d�}ttj|d
�tj|d�|d�n|j	d|�d}|S)N�install_typeZpackagesr>F)r!Zgems�version�ruby_versionTr:ZomnibusroZomnibus_urlZomnibus_url_retries)rjrkrozUnknown chef install type '%s')r:)
rr3r"�RUBY_VERSION_DEFAULT�install_chef_from_gems�distro�install_packagesrpZget_cfg_option_intrF)rUr(r)rqrW�chef_versionrsror*r*r+rS�s(




rScCs&d|d|g}|dkr"|jd�|S)Nzruby%sz
ruby%s-devz1.8�libopenssl-ruby1.8�rubygems1.8)ryrz)r\)rrZpkgsr*r*r+�get_ruby_packages�s
r{c
Cs�|jt|��tjjd�s*tjd|d�tjjd�sFtjd|d�|rptjdddd|dd	d
ddg	d
d�ntjddddd	d
ddgd
d�dS)Nz/usr/bin/gemz/usr/bin/gem%sz
/usr/bin/rubyz/usr/bin/ruby%sZinstallr:z-v %sz--no-riz	--no-rdocz--bindirz/usr/binz-qF)rY)rwr{r#r$�existsrZsym_linkr)rsrxrvr*r*r+ru�s6
ru)NNN)2�__doc__rArPr#�textwraprZ	cloudinitrrrrrZcloudinit.config.schemarr	Zcloudinit.settingsr
rtr[r@rCrlrmr&ZCHEF_ENCRYPTED_DATA_BAG_PATHZCHEF_ENVIRONMENTrMr-�	frozensetr2rIr?rOr0r\rLrRr_r r�metar,r9rXrTrirprSr{rur*r*r*r+�<module>Hs�


	#R
 

Youez - 2016 - github.com/yon3zu
LinuXploit