53_rede_em_crise_NoRestriction

Page 40

Cfengine | CAPA

body contain cd(dir) { useshell => “false”; chdir => “${dir}”; }

Tais corpos podem ser armazenados em qualquer arquivo de entrada do Cfengine, mas como eles são frequentemente genéricos e podem ser reutilizados por muitas diretivas do tipo compromisso, faz mais sentido que eles sejam armazenados em arquivos separados, que chamaremos aqui pelo nome library.cf. Caso o leitor ainda não tenha feito isso, vamos colocar esse corpo cd em um arquivo library.cf e incluir esse arquivo no bundlesequence do arquivo promises.cf. É importante lembrar que, se modificarmos esse corpo mais tarde, isso pode afetar diversos compromissos que estiverem ativos, de modo que é preciso ter cuidado

ao manipular esse tipo de recurso, já que ele pode ser compartilhado por outras diretivas. No Cfengine, uma classe é uma condição booleana com o objetivo de representar algum aspecto do estado do sistema, seja esse estado um sistema operacional ou a hora do dia. Muitas classes são definidas automaticamente pelo cf-agent, mas o administrador de sistemas pode definir outras baseados nos valores retornados pelos programas ou mesmo por outros meios. Qualquer compromisso seguindo uma expressão de classe (cadeias de caracteres terminando com ::) só entra em vigor quando a classe retornar o valor “verdade” (true). Por exemplo, podemos entender a seguinte expressão: bundle agent a { reports: linux: ➥“asdf”; }

como “imprima asdf se a classe linux estiver definida”. Como era de se esperar, o cf-agent define automaticamente a classe linux em máquinas rodando Linux em um ambiente Cfengine. Já usamos a classe any diversas vezes no curso deste artigo. Essa classe retorna sempre o valor booleano true, e é usada com frequência, mesmo quando não é estritamente necessário, para manter uma indentação correta nos blocos de diretivas. Se executarmos o comando cf-agent -pv – o que é sempre seguro, uma vez que, assim, códigos de política não são executados –, poderemos ver todas as classes definidas automaticamente. Em uma das máquinas de teste que utilizamos na confecção deste artigo, algumas das classes automaticamente definidas são: 64_bit, Friday, debian_4 e xen.

OSPRE

R

Linux Magazine #53 | Abril de 2009

Linux Professional Institute

© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).

39


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.