recurso de lançamento

edite esta página no repositório de Chef

esta página é gerada a partir da fonte do cliente de infra-chefe code.To sugere uma mudança, edita a lavagem.RB file and submit a pull request to the Chef Infra Client repository.

All Infra resources page

Use the launchd resource to manage system-wide services (daemons) and per-user services (agents) on the macOS platform.

New in Chef Infra Client 12.8.

sintaxe

a sintaxe completa para todas as propriedades que estão disponíveis para o recurso de lançamento é:

launchd 'name' do abandon_process_group true, false backup Integer, false cookbook String debug true, false disabled true, false # default value: false enable_globbing true, false enable_transactions true, false environment_variables Hash exit_timeout Integer group String, Integer hard_resource_limits Hash inetd_compatibility Hash init_groups true, false keep_alive true, false, Hash label String # default value: 'name' unless specified launch_events Hash launch_only_once true, false ld_group String limit_load_from_hosts Array limit_load_to_hosts Array limit_load_to_session_type Array, String low_priority_io true, false mach_services Hash mode String, Integer nice Integer on_demand true, false owner String, Integer path String plist_hash Hash process_type String program String program_arguments Array queue_directories Array root_directory String run_at_load true, false session_type String sockets Hash soft_resource_limits Array source String standard_error_path String standard_in_path String standard_out_path String start_calendar_interval Hash, Array start_interval Integer start_on_mount true, false throttle_interval Integer time_out Integer type String # default value: "daemon" umask Integer username String wait_for_debugger true, false watch_paths Array working_directory String action Symbol # defaults to :create if not specifiedend

onde:

  • launchd é o recurso.
  • name é o nome dado ao bloco de recursos.
  • action identifica os passos que o Chef Infra cliente tomará para trazer o nó para o estado desejado.
  • abandon_process_group, backup, cookbook, debug, disabled, enable_globbing, enable_transactions, environment_variables, exit_timeout, group, hard_resource_limits, inetd_compatibility, init_groups, keep_alive, label, launch_events, launch_only_once, ld_group, limit_load_from_hosts, limit_load_to_hosts, limit_load_to_session_type, low_priority_io, mach_services, mode, nice, on_demand, owner, path, plist_hash, process_type, program, program_arguments, queue_directories, root_directory, run_at_load, session_type, sockets, soft_resource_limits, source, standard_error_path, standard_in_path, standard_out_path, start_calendar_interval, start_interval, start_on_mount, throttle_interval, time_out, type, umask, username, wait_for_debugger, watch_paths, e working_directory são as propriedades disponíveis para este recurso.

acções

o recurso de lançamento tem as seguintes acções:

:createDefault. Criar uma lista de propriedades de lavagem.:create_if_missingcrie uma lista de propriedades de lançamento, se ela ainda não existir.:deleteremove uma lista de propriedades de lançamento. Isto irá descarregar um servidor ou agente, se estiver carregado.:disabledesactivar uma lista de propriedades de lançamento.:enablecrie uma lista de propriedade de launchd e, em seguida, certifique-se de que ele está habilitado. Se uma lista de propriedades de lançamento já existir, mas não corresponder, actualiza a lista de propriedades para corresponder, e então reinicializa o servidor ou agente.:nothingeste bloco de recursos não age a menos que notificado por outro recurso para tomar medidas. Uma vez notificado, este bloco de recursos ou funciona imediatamente ou está em fila de espera para correr no final de uma execução de um Chef Infra-cliente.:restartReinicie um servidor ou agente gerido por lançadores.

Properties

the launchd resource has the following properties:

abandon_process_groupRuby Type: true, false

If a job dies, all remaining processes with the same process ID may kept running. Configure como true para matar todos os processos restantes.

backupRuby Type: Integer, false

the number of backups to be kept in /var/chef/backup. Configurado parafalse para evitar que os backups sejam mantidos.

cookbookRuby Type: Texto

o nome do livro de receitas no qual os ficheiros de código estão localizados.

groupRuby Type: String, Integer

When launchd is run as the root user, the group to run the job as.Se a propriedade username é especificada e esta propriedade não é, este valor é definido para o grupo padrão para o usuário.

labelRuby Type: String

the unique identifier for the job.

modeRuby Type: Integer, String | Default Value:'0755'

a quoted 3-5 character string that defines the octal mode. Por exemplo: '755', '0755', ou 00755.

ownerTipo Rubi: Inteiro, String

uma string ou ID que identifica o dono do grupo pelo nome de usuário, incluindo nomes de usuário totalmente qualificados, tais como domain\user ouuser@domain. Se este valor não for especificado, os proprietários existentes mantêm-se inalterados e as atribuições de novos proprietários utilizam o utilizador actual(quando necessário).

pathRuby Type: String

the path to the directory. Recomenda-se a utilização de um caminho totalmente qualificado, mas nem sempre é necessária. Valor por omissão: o namedo bloco de recursos. Veja a seção “sintaxe” acima para mais informações.

plist_hashRuby Type: Hash

uma Hash de pares de valores-chave usados para criar a lista de propriedades de launchd.

session_typeRuby Type: String

the type of launchd plist to be created. Valores possíveis: system(por omissão) ou user.

sourceRuby Type: String

the path to the launchd property list.

typeRuby Type: String

the type of resource. Valores possíveis: daemon (por omissão), agent.

abandon_process_groupRuby Type: true, false

If a job dies, all remaining processes with the same process ID maybe kept running. Configure como true para matar todos os processos restantes.

debugRuby Type: true, false

define a máscara de log para LOG_DEBUG para este trabalho.

disabledRuby Type: true, false | Default Value:false

Heints to launchctl to not submit this job to launchd.

enable_globbingRuby Type: true, false

Update program arguments before invocation.

enable_transactionsRuby Type: true, false

Track in-progress transactions; if none, then send the SIGKILL signal.

environment_variablesRuby Type: hash

Additional environment variables to set before running a job.

exit_timeoutRuby Type: Integer

the amount of time (in seconds) launchd waits before sending a SIGKILL signal.

hard_resource_limitsRuby Type: hash

a Hash of resource limits to be imposed on a job.

inetd_compatibilityRuby Type: hash

especifica se um daemon espera ser executado como se fosse lançado a partir deinetd. Definido para wait => true para passar os descritores padrão de entrada, saída e Ficheiro anderror. Set to wait => false to call the acceptsystem call on behalf of the job, and then pass standard input,output, and error file descriptors.

init_groupsRuby Type: true, false

Specify if initgroups is called before running a job.

keep_aliveRuby Type: true, false, Hash

Keep a job running continuously (true) or allow demand and conditions on the node to determine if the job keeps running (false).

New in Chef Client 12.14

launch_eventsRuby Type: hash

Specify higher-level event types to be used as launch-on-demand event sources.

New in Chef Infra Client 15.1

launch_only_onceRuby Type: true, false

Specify if a job can be run only one time. Defina este valor para true se uma tarefa não puder ser reiniciada sem uma reinicialização completa da máquina.

limit_load_from_hostsRuby Type: Array

an array of hosts to which this configuration file does not apply, i.e. “apply this configuration file to all hosts not specified in this array”.

limit_load_to_hostsRuby Type: Array

an array of hosts to which this configuration file applies.

limit_load_to_session_typeRuby Type: Array, String

the session type(S) to which this configuration file applies.

low_priority_ioRuby Tipo: true, false

Especificar se o kernel do nó deve considerar este daemon de baixa prioridade durante arquivo do sistema de I/O.

mach_servicesRuby Tipo: Hash

Especificar os serviços sejam registrados com o bootstrap do subsistema.

niceRuby Type: Integer

the program scheduling priority value in the range -20 to 20.

on_demandRuby Type: true, false

Keep a job alive. Apenas se aplica à versão 10.4 do macOS(e anterior); use keep_alive em vez disso para versões mais recentes.

process_typeRuby Type: String

the intended purpose of the job: Adaptive, Background, Interactive, ou Standard.

programRuby Type: String

the first argument of execvp, typically the file name associated with the file to be executed. Este valor deve ser especificado seprogram_arguments não estiver especificado e vice-versa.

program_argumentsRuby Type: Array

the second argument of execvp. Se program não for especificado, esta propriedade deve ser especificada e será tratada como se fosse o primeiro argumento.

queue_directoriesRuby Type: Array

an array of non-empty directories which, if any are modified, will cause a job to be started.

root_directoryRuby Type: String

chroot to this directory, and then run the job.

run_at_loadRuby Type: true, false

Launch a job once (at the time it is loaded).

socketsRuby Type: hash

a Hash of on-demand sockets that notice launchd when a job should be run.

soft_resource_limitsRuby Type: Array

a Hash of resource limits to be imposed on a job.

standard_error_pathRuby Type: String

the file to which standard error (stderr) is sent.

standard_in_pathRuby Type: String

the file to which standard input (stdin) is sent.

standard_out_pathRuby Type: String

the file to which standard output (stdout) is sent.

start_calendar_intervalRuby Type: hash

a Hash (similar a crontab) that defines the calendar frequency at which a job is started. Por exemplo:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" }irá executar um trabalho às 8: 00 PM todos os dias, de segunda a sexta-feira, todos os meses do ano.

start_intervalRuby Type: Inteiro

a frequência (em segundos) na qual um trabalho é iniciado.

start_on_mountRuby Type: true, false

Start a job every time a file system is mounted.

throttle_intervalRuby Type: Integer | Default Value:10

the frequency (in seconds) at which jobs are allowed to spawn.

time_outRuby Type: Integer

the amount of time (in seconds) a job may be idle before it timesout. Se não for indicado nenhum valor, será usado o valor de tempo-limite por omissão para o ‘launchdwill’.

umaskRuby Type: Integer

a decimal value to pass to umask before running a job.

usernameRuby Type: String

quando o lançamento é executado como o usuário raiz, o Usuário para executar a tarefa como.

wait_for_debuggerRuby Type: true, false

especifique se o launchd tem uma tarefa à espera de um depurador anexar antes de executar o código.

watch_pathsRuby Type: Array

An array of paths which, if any are modified, will cause a job to be started.

working_directoryRuby Type: String

chdir to this directory, and then run the job.

funcionalidade de recursos comuns

os recursos de Chef incluem propriedades comuns, notificações e guardas de recursos.

Propriedades Comuns

as propriedades A seguir são comuns a todos os recursos:

compile_time

Ruby Tipo: verdadeiro, falso | Valor Padrão: false

Controle a fase durante a qual o recurso é executado no nó. Configure como true to run while the resource collection is being built (the compile phase). Configure como false para executar enquanto o Chef Infra-cliente configura o nó (o converge phase).

ignore_failure

Ruby Type: true, false,: quiet | Default Value: false

Continue a correr uma receita se um recurso falhar por alguma razão. :quiet não irá mostrar o traço completo da pilha e a receita continuará a correr se um recurso falhar.

retries

Ruby Type: Integer / Default Value: 0

o número de tentativas de capturar exceções e repetir o recurso.

retry_delay

Ruby Type: Integer / Default Value: 2

o atraso de repetição (em segundos).

sensitive

Ruby Type: true, false | Default Value: false

certifique-se de que os dados de recursos sensíveis não são registrados pelo Chef InfraClient.

Notificações

notifies

Ruby Type: Symbol, ‘ Chef::Recurso’

um recurso pode notificar outro recurso para tomar medidas quando o seu estado muda. Especificar a 'resource', o :action que os recursos devem tomar, e depois o :timer para essa acção. Um recurso pode notificar mais de um recurso; utilize uma declaração notifies para cada recurso a notificar.

se o recurso referenciado não existir, um erro é raised.In pelo contrário, subscribes não falhará se a fonte de origem não for encontrada.

um temporizador especifica o ponto durante a execução de um cliente Infra Chef em que a anotificação é executada. Os seguintes cronómetros estão disponíveis:

:before

Especifica que a acção relativa a um recurso notificado deve ser executada antes de processar o bloco de recursos em que a notificação está localizada.

:delayed

Default. Especifica que uma notificação deve ser colocada em fila de espera, e, em seguida, executada no final de uma execução de um Chef Infra cliente.

:immediate,:immediately

Especifica que uma notificação deve ser executada imediatamente, por recurso notificado.

A sintaxe notifies é:

notifies :action, 'resource', :timer

subscribes

Ruby Tipo: Símbolo, ” Chef::Resource ‘

a resource may listen to another resource, and then take action if Theate of the resource being listen to changes. Especifique a 'resource', o :action a ser tomado, e então o :timer para esta ação.

Note que subscribes não se aplica a ação especificada para theresource que ele ouve, por exemplo:

file '/etc/nginx/ssl/example.crt' do mode '0600' owner 'root'endservice 'nginx' do subscribes :reload, 'file', :immediatelyend

neste caso, a subscribes propriedade recarrega a nginx servicewhenever seu arquivo de certificado, localizado em/etc/nginx/ssl/example.crt, é atualizado. subscribes não altera o ficheiro do certificado em si, apenas ouve uma alteração no ficheiro, e executa a acção :reload para o seu recurso (neste exemplo nginx) quando é detectada uma alteração.

se o outro recurso não existir, a subscrição não aumentará o erro. Contrasta com a semântica mais estrita de notifies, que levantará um erro se o outro recurso não existir.

um temporizador especifica o ponto durante a execução de um cliente Infra Chef em que a anotificação é executada. Os seguintes cronómetros estão disponíveis:

:before

Especifica que a acção relativa a um recurso notificado deve ser executada antes de processar o bloco de recursos em que a notificação está localizada.

:delayed

Default. Especifica que uma notificação deve ser colocada em fila de espera, e, em seguida, executada no final de uma execução de um Chef Infra cliente.

:immediate,:immediately

Especifica que uma notificação deve ser executada imediatamente, por recurso notificado.

a sintaxe para subscribes é:

subscribes :action, 'resource', :timer

Guardas

uma propriedade de guarda pode ser usada para avaliar o estado de um nó durante a fase de execução de um cliente Infra Chef. Com base nos resultados desta avaliação, Uma propriedade de guarda é então usada para dizer ao cliente Infra-Chefe se ele deve continuar executando um recurso. Uma propriedade do guarda aceita o valor do texto eithera ou um valor do bloco Ruby:

  • uma string é executada como um comando shell. Se o comando retornar 0, a guarda é aplicada. Se o comando devolve qualquer outro valor, então a propriedade da guarda não é aplicada. Guardas de cordas em apowershell_ script executam comandos PowerShell do Windows e podem reverter true, além de 0.
  • um bloco é executado como código Ruby que deve retornar ou true oufalse. Se o bloco retornar true, a propriedade de guarda é aplicada.Se o bloco retornar false, a propriedade de guarda não é aplicada.

Um guarda de propriedade é útil para garantir que um recurso é idempotente byallowing que o recurso de teste para o estado desejado, como é beingexecuted e, em seguida, se o estado desejado está presente, para o Chef InfraClient para não fazer nada.

Propriedades

As seguintes propriedades podem ser usadas para definir um guarda que é evaluatedduring a fase de execução de um Chef de Infra Cliente executar:

not_if

Impedir que um recurso de execução quando a condição retorna true.

only_if

permite que um recurso seja executado apenas se a condição retornar true.

exemplos

os seguintes exemplos demonstram várias abordagens para usar o recurso de lançamento em receitas:

crie um servidor de lançamento a partir de um ficheiro de livro de receitas



+