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
, eworking_directory
são as propriedades disponíveis para este recurso.
acções
o recurso de lançamento tem as seguintes acções:
:create
Default. Criar uma lista de propriedades de lavagem.:create_if_missing
crie uma lista de propriedades de lançamento, se ela ainda não existir.:delete
remove uma lista de propriedades de lançamento. Isto irá descarregar um servidor ou agente, se estiver carregado.:disable
desactivar uma lista de propriedades de lançamento.:enable
crie 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.:nothing
este 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.:restart
Reinicie um servidor ou agente gerido por lançadores.
Properties
the launchd resource has the following properties:
abandon_process_group
Ruby 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.
backup
Ruby Type: Integer, false
the number of backups to be kept in /var/chef/backup
. Configurado parafalse
para evitar que os backups sejam mantidos.
cookbook
Ruby Type: Texto
o nome do livro de receitas no qual os ficheiros de código estão localizados.
group
Ruby 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.
label
Ruby Type: String
the unique identifier for the job.
mode
Ruby Type: Integer, String | Default Value:'0755'
a quoted 3-5 character string that defines the octal mode. Por exemplo: '755'
, '0755'
, ou 00755
.
owner
Tipo 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).
path
Ruby 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 name
do bloco de recursos. Veja a seção “sintaxe” acima para mais informações.
plist_hash
Ruby Type: Hash
uma Hash de pares de valores-chave usados para criar a lista de propriedades de launchd.
session_type
Ruby Type: String
the type of launchd plist to be created. Valores possíveis: system
(por omissão) ou user
.
source
Ruby Type: String
the path to the launchd property list.
type
Ruby Type: String
the type of resource. Valores possíveis: daemon
(por omissão), agent
.
abandon_process_group
Ruby 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.
debug
Ruby Type: true, false
define a máscara de log para LOG_DEBUG
para este trabalho.
disabled
Ruby Type: true, false | Default Value:false
Heints to launchctl
to not submit this job to launchd.
enable_globbing
Ruby Type: true, false
Update program arguments before invocation.
enable_transactions
Ruby Type: true, false
Track in-progress transactions; if none, then send the SIGKILL
signal.
environment_variables
Ruby Type: hash
Additional environment variables to set before running a job.
exit_timeout
Ruby Type: Integer
the amount of time (in seconds) launchd waits before sending a SIGKILL
signal.
hard_resource_limits
Ruby Type: hash
a Hash of resource limits to be imposed on a job.
inetd_compatibility
Ruby 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 accept
system call on behalf of the job, and then pass standard input,output, and error file descriptors.
init_groups
Ruby Type: true, false
Specify if initgroups
is called before running a job.
keep_alive
Ruby 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_events
Ruby 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_once
Ruby 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_hosts
Ruby 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_hosts
Ruby Type: Array
an array of hosts to which this configuration file applies.
limit_load_to_session_type
Ruby Type: Array, String
the session type(S) to which this configuration file applies.
low_priority_io
Ruby Tipo: true, false
Especificar se o kernel do nó deve considerar este daemon de baixa prioridade durante arquivo do sistema de I/O.
mach_services
Ruby Tipo: Hash
Especificar os serviços sejam registrados com o bootstrap do subsistema.
nice
Ruby Type: Integer
the program scheduling priority value in the range -20
to 20
.
on_demand
Ruby 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_type
Ruby Type: String
the intended purpose of the job: Adaptive
, Background
, Interactive
, ou Standard
.
program
Ruby 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_arguments
Ruby 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_directories
Ruby Type: Array
an array of non-empty directories which, if any are modified, will cause a job to be started.
root_directory
Ruby Type: String
chroot
to this directory, and then run the job.
run_at_load
Ruby Type: true, false
Launch a job once (at the time it is loaded).
sockets
Ruby Type: hash
a Hash of on-demand sockets that notice launchd when a job should be run.
soft_resource_limits
Ruby Type: Array
a Hash of resource limits to be imposed on a job.
standard_error_path
Ruby Type: String
the file to which standard error (stderr
) is sent.
standard_in_path
Ruby Type: String
the file to which standard input (stdin
) is sent.
standard_out_path
Ruby Type: String
the file to which standard output (stdout
) is sent.
start_calendar_interval
Ruby 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_interval
Ruby Type: Inteiro
a frequência (em segundos) na qual um trabalho é iniciado.
start_on_mount
Ruby Type: true, false
Start a job every time a file system is mounted.
throttle_interval
Ruby Type: Integer | Default Value:10
the frequency (in seconds) at which jobs are allowed to spawn.
time_out
Ruby 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’.
umask
Ruby Type: Integer
a decimal value to pass to umask
before running a job.
username
Ruby Type: String
quando o lançamento é executado como o usuário raiz, o Usuário para executar a tarefa como.
wait_for_debugger
Ruby Type: true, false
especifique se o launchd tem uma tarefa à espera de um depurador anexar antes de executar o código.
watch_paths
Ruby Type: Array
An array of paths which, if any are modified, will cause a job to be started.
working_directory
Ruby 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 revertertrue
, além de0
. - um bloco é executado como código Ruby que deve retornar ou
true
oufalse
. Se o bloco retornartrue
, a propriedade de guarda é aplicada.Se o bloco retornarfalse
, 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