IngridPtWiki:Computação Grid:Serviços:YAIM

De IngridPtWiki

Tabela de conteúdo

Introdução ao YAIM

Todos os serviços gLite são configurados usando a ferramenta YAIM cuja topologia é importante conhecer. Esta ferramenta é instalada com o restante middleware gLite, e possui uma arquitectura modular constituída por um módulo comum a todos os serviços, e por componentes específicos dos serviços a configurar em cada servidor, distribuídos em pacotes rpm diferentes. Uma das suas grandes vantagens é que consiste num conjunto de scripts bash que podem ser adaptados pelos administradores de sistemas sempre que necessário.

Estrutura de directórios

Os utilitários de configuração YAIM são instaladas na directoria /opt/glite/yaim, e segundo a seguinte estrutura:

  • /functions/: Directoria que contém várias funções, definidas em scripts bash, executadas quando da configuração dos vários serviços gLite.
  • /functions/local/: Os administradores dos serviços podem definir as suas próprias funções, que substituem as distribuídas pelo YAIM, desde que tenham o mesmo nome. O nome do ficheiro deve ser igual ao da função declarada no seu interior.
  • /functions/pre/, /functions/post/: Directoria com definições de funções específicas a executar antes (depois) da função principal. Caso existam, estas funções devem conter o sufixo _pre (_post).
  • /node-info.d/: Directoria que contém um conjunto de ficheiros que no seu interior contêm uma lista de funções a executar durante a configuração de um determinado serviço.
  • /defaults/: Directoria que contém um conjunto de ficheiros com formato igual aqueles que se encontram em /node-info.d/, mas cujo nome é acrescido de um sufixo .pre e/ou .post. O seu objectivo é que sejam carregados antes e/ou depois do ficheiro de configuração principal (site-info.def), de forma a disponibilizar valores para configuração dos serviços por pre-definição
  • /bin/: Binários da ferramenta YAIM
  • /log/: Localização dos ficheiros de logging gerados durante a execução do YAIM
  • /examples/: Directoria contendo exemplos dos ficheiros de configuração.

Ficheiros de configuração

A directoria /examples/ pretende auxiliar o administrador na configuração dos serviços. O administrador deve copiar os ficheiros fornecidos a título de exemplo para uma localização que ache apropriada, com permissões de acesso correctas (700 para user root). Todos os ficheiros de configuração devem ficar debaixo de uma única directoria (ex.: /root/siteinfodir/), e conter:

  • /site-info.def: Este é o ficheiro de configuração principal do site.
  • /services/: Directoria com ficheiros seguindo o mesmo formato dos ficheiros debaixo de /opt/glite/yaim/defaults. Estes ficheiros são carregados apenas quando o serviço é configurado, permitindo a configuração de variáveis especificas para cada serviço.
  • /nodes/: Cada ficheiro debaixo desta directoria deve ser o FQN do servidor. Quando o servidor é configurado, o respectivo ficheiro é carregado, permitindo configurações de variáveis especificas para cada servidor.
  • /vo.d/: Directoria com ficheiros, um por VO e contendo informação específica de cada VO, cujo nome deve ser o nome da VO (em letras minúsculas). Cada ficheiro deve conter informação especifica de cada VO.
  • /users.conf/: Directorias com as listas de utilizadores a suportar para cada VO.
  • /group.d/: Directorias com ficheiros com a lista de grupos e roles a suportar para cada VO
  • /wn-list: Lista de gLite Worker Nodes

Fluxo de configuração

Ao iniciar a configuração de um dado serviço, os vários ficheiros de configuração podem reescrever os mesmos conteúdos. No fluxo de configuração apresentado de seguida, supomos que a directoria dos ficheiros de configuração é /root/siteinfo/, e que pretendemos configurar o serviço myservice, no servidor myhost, e suportando a VO myvo.

1. /opt/glite/yaim/defaults/site-info.pre
2. /opt/glite/yaim/defaults/myservice.pre
3. /root/siteinfo/site-info.def
4. /opt/glite/yaim/defaults/site-info.post
5. /opt/glite/yaim/defaults/myservice.post
6. /root/siteinfo/nodes/mynode
7. /root/siteinfo/vo.d/myvo
8. /opt/glite/yaim/node-info.d/myservice

O administrador de sistemas deve, por norma, apenas configurar as definições do serviço em

a. /root/siteinfo/site-info.def
b. /root/siteinfo/nodes/mynode
c. /root/siteinfo/vo.d/myvo

ou alternativamente concentrar todos os conteúdos no ficheiro principal (no exemplo anterior, /root/siteinfo/site-info.def), que é o único ficheiro de configuração que deve efectivamente existir.

Fluxo de execução

Para cada função myfunc definida em /opt/glite/yaim/node-info.d/myservice, a execução da configuração segue o seguinte fluxo (caso todas as seguinte funções estejam definidas):

1. /opt/glite/yaim/functions/pre/myfunc.pre
2. /opt/glite/yaim/functions/myfunc or /opt/glite/yaim/functions/local/myfunc
3. /opt/glite/yaim/functions/post/myfunc

Manual YAIM

Usage: /opt/glite/yaim/bin/yaim <action> <parameters>

Actions:

-i | --install     : Install one or several meta package.
                     Compulsory parameters: -s, -m 

-c | --configure   : Configure already installed services.
                     Compulsory parameters: -s, -n

-r | --runfunction : Execute a configuration function.
                    Compulsory parameters: -s, -f
                    Optional parameters  : -n

-v | --verify      : Goes through on all the functions and checks that
                    the necessary variables required for a given
                    configuration target are all defined in site-info.def.
                    Compulsory parameters: -s -n

-d | --debug       : Turns "set -x" on, rude debug information
                    for development. Probably you don't want to use it.

-e | --explain     : Doesn't perform configuration but explains what the
                    functions are doing by printing out the comments
                    found inside them.
                    Compulsory parameters: -s -n

-h | --help        : Prints out this help.

Parameters:

-s | --siteinfo:   : Location of the site-info.def file
-m | --metapackage : Name of the metapackage(s) to install
-n | --nodetype    : Name of the node type(s) to configure
-f | --function    : Name of the functions(s) to execute

Examples:

Installation:
 /opt/glite/yaim/bin/yaim -i -s /root/siteinfo/site-info.def -m glite-SE_dpm_mysql

Configuration:
 /opt/glite/yaim/bin/yaim -c -s /root/siteinfo/site-info.def -n SE_dpm_mysql

Running a function:
 /opt/glite/yaim/bin/yaim -r -s /root/siteinfo/site-info.def -n SE_dpm_mysql -f config_mkgridmap

Verify your site-info.def:
 /opt/glite/yaim/bin/yaim -v -s /root/siteinfo/site-info.def -n SE_dpm_mysql

Sugestões para a configuração

A melhor forma de tirar proveito da arquitectura modular do YAIM é desenvolver uma estrutura de directórios de configuração em que se tem um ficheiro de configuração global, com variaveis usadas por todos os serviços, e rescrever essas variavies locais sempre que necessário, em função da VO ou do serviço a executar.

./site-info.def
./group.d/
         /groups-<vo1>.conf
         /groups-<vo2>.conf
./nodes/
       /ce01.your.domain
       /mon01.your.domain
       /se01.your.domain
       /ui01.your.domain
       /sbdii01.your.domain
./users/
       /users.conf
./vo.d/
      /vo1
      /vo2
./wn-list/
         /wn-list-ingrid.conf

Exemplo

Consulte a secção Ficheiros de configuraçao YAIM para serviços INGRID para obter um exemplo de uma estrutura de directório para serviços INGRID.

Ferramentas pessoais
Suporte