pcs e crm shell são duas interfaces populares de linha de comando de nível superior para o Pacemaker. Cada um tem sua própria sintaxe; este artigo é baseado no artigo clusterlabs.org e fornece uma comparação rápida de como realizar as mesmas tarefas usando qualquer um deles. Alguns exemplos também mostram o comando equivalente usando ferramentas de linha de comando Pacmaker de baixo nível.
Obs.: esses exemplos mostram a sintaxe mais simples; veja as respectivas man pages para todas as opções possíveis.
Mostrar configuração e status do cluster
Mostrar configuração (XML bruto)
crmsh # crm configure show xml pcs # pcs cluster cib pacemaker # cibadmin -Q
Mostrar configuração (amigável para humanos)
crmsh # crm configure show pcs # pcs config
Mostrar status do cluster
crmsh # crm status pcs # pcs status pacemaker # crm_mon -1
Gerenciar nós
Colocar o nó “pcmk-1” em modo de espera
crmsh # crm node standby pcmk-1 pcs-0.9 # pcs cluster standby pcmk-1 pcs-0.10 # pcs node standby pcmk-1 pacemaker # crm_standby -N pcmk-1 -v on
Remova o nó “pcmk-1” do modo de espera
crmsh # crm node online pcmk-1 pcs-0.9 # pcs cluster unstandby pcmk-1 pcs-0.10 # pcs node unstandby pcmk-1 pacemaker # crm_standby -N pcmk-1 -v off
Gerenciar Propriedades do
Defina a propriedade de cluster “stonith-enabled” como “false”
crmsh # crm configure property stonith-enabled=false pcs # pcs property set stonith-enabled=false pacemaker # crm_attribute -n stonith-enabled -v false
Mostrar Informações do Agente de Recursos
Listar Classes de Agente de Recursos (RA)
crmsh # crm ra classes pcs # pcs resource standards pacmaker # crm_resource --list-standards
Listar Agentes de Recursos Disponíveis (RAs) por Padrão
crmsh # crm ra list ocf pcs # pcs resource agents ocf pacemaker # crm_resource --list-agents ocf
Listar Agentes de Recursos Disponíveis (RAs) por Provedor OCF
crmsh # crm ra list ocf pacemaker pcs # pcs resource agents ocf:pacemaker pacemaker # crm_resource --list-agents ocf:pacemaker
Listar Parâmetros do Agente de Recursos Disponíveis
crmsh # crm ra info IPaddr2 pcs # pcs resource describe IPaddr2 pacemaker # crm_resource --show-metadata ocf:heartbeat:IPaddr2
Você também pode usar o class:provider:type
formato completo com crmsh e pcs se vários RAs com o mesmo nome estiverem disponíveis.
Mostrar Parâmetros Disponíveis do Agente Fence
crmsh # crm ra info stonith:fence_ipmilan pcs # pcs stonith describe fence_ipmilan
Gerenciar recursos
Criar um recurso
crmsh # crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 \ params ip=192.168.122.120 cidr_netmask=24 \ op monitor interval=30s pcs # pcs resource create ClusterIP IPaddr2 ip=192.168.122.120 cidr_netmask=24
pcs determina o padrão e o provedor ( ocf:heartbeat
) automaticamente, pois IPaddr2
é exclusivo e cria operações automaticamente (incluindo monitor) com base nos metadados do agente.
Mostrar configuração de todos os recursos
crmsh # crm configure show pcs-0.9 # pcs resource show --full pcs-0.10 # pcs resource config
Mostrar configuração de um recurso
crmsh # crm configure show ClusterIP pcs-0.9 # pcs resource show ClusterIP pcs-0.10 # pcs resource config ClusterIP
Mostrar configuração de recursos de vedação
crmsh # crm resource status pcs-0.9 # pcs stonith show --full pcs-0.10 # pcs stonith config
Iniciar um recurso
crmsh # crm resource start ClusterIP pcs # pcs resource enable ClusterIP pacemaker # crm_resource -r ClusterIP --set-parameter target-role --meta -v Started
Parar um recurso
crmsh # crm resource stop ClusterIP pcs # pcs resource disable ClusterIP pacemaker # crm_resource -r ClusterIP --set-parameter target-role --meta -v Stopped
Remover um recurso
crmsh # crm configure delete ClusterIP pcs # pcs resource delete ClusterIP
Modificar os parâmetros de instância de um recurso
crmsh # crm resource param ClusterIP set clusterip_hash=sourceip pcs # pcs resource update ClusterIP clusterip_hash=sourceip pacemaker # crm_resource -r ClusterIP --set-parameter clusterip_hash -v sourceip
O crmsh também possui um comando de edição que edita a sintaxe simplificada do CIB (os mesmos comandos da linha de comando) por meio de um editor de texto configurável.
Modifique os parâmetros de instância de um recurso interativamente
crmsh # crm configure edit ClusterIP
Usando o modo de shell interativo do crmsh, várias alterações podem ser editadas e verificadas antes de se comprometer com a configuração ao vivo:
Faça várias alterações de configuração interativamente
crmsh # crm configure crmsh # edit crmsh # verify crmsh # commit
Excluir os parâmetros de instância de um recurso
crmsh # crm resource param ClusterIP delete nic pcs # pcs resource update ClusterIP nic= pacemaker # crm_resource -r ClusterIP --delete-parameter nic
Listar Padrões de Recursos Atuais
crmsh # crm configure show type:rsc_defaults pcs # pcs resource defaults pacemaker # cibadmin -Q --scope rsc_defaults
Definir padrões de recursos
crmsh # crm configure rsc_defaults resource-stickiness=100 pcs # pcs resource defaults resource-stickiness=100
Listar padrões de operação atuais
crmsh # crm configure show type:op_defaults pcs # pcs resource op defaults pacemaker # cibadmin -Q --scope op_defaults
Definir padrões de operação
crmsh # crm configure op_defaults timeout=240s pcs # pcs resource op defaults timeout=240s
Habilitar Rastreamento do Agente de Recurso para um Recurso
crmsh # crm resource trace Website
Limpar contagens de falhas para um recurso
crmsh # crm resource cleanup Website pcs # pcs resource cleanup Website pacemaker # crm_resource --cleanup -r Website
Criar um recurso de clone
crmsh # crm configure clone WebIP ClusterIP meta globally-unique=true clone-max=2 clone-node-max=2 pcs # pcs resource clone ClusterIP globally-unique=true clone-max=2 clone-node-max=2
Crie um Recurso Clonado Promocional
crmsh # crm configure ms WebDataClone WebData \ meta master-max=1 master-node-max=1 \ clone-max=2 clone-node-max=1 notify=true pcs-0.9 # pcs resource master WebDataClone WebData \ master-max=1 master-node-max=1 \ clone-max=2 clone-node-max=1 notify=true pcs-0.10 # pcs resource promotable WebData WebDataClone \ promoted-max=1 promoted-node-max=1 \ clone-max=2 clone-node-max=1 notify=true
pcs gerará o nome do clone automaticamente se for omitido na linha de comando.
Gerenciar Restrições
Criar uma restrição de colocação
crmsh # crm configure colocation website-with-ip INFINITY: WebSite ClusterIP pcs # pcs constraint colocation add ClusterIP with WebSite INFINITY
Criar uma restrição de colocação com base na função
crmsh # crm configure colocation another-ip-with-website inf: AnotherIP WebSite:Master pcs # pcs constraint colocation add Started AnotherIP with Promoted WebSite INFINITY
Criar uma restrição de pedido
crmsh # crm configure order apache-after-ip mandatory: ClusterIP WebSite pcs # pcs constraint order ClusterIP then WebSite
Crie uma restrição de ordem com base na função
crmsh # crm configure order ip-after-website Mandatory: WebSite:Master AnotherIP pcs # pcs constraint order promote WebSite then start AnotherIP
Criar uma restrição de localização
crmsh # crm configure location prefer-pcmk-1 WebSite 50: pcmk-1 pcs # pcs constraint location WebSite prefers pcmk-1=50
Criar uma restrição de local com base na função
crmsh # crm configure location prefer-pcmk-1 WebSite rule role=Master 50: \#uname eq pcmk-1 pcs # pcs constraint location WebSite rule role=Promoted 50 \#uname eq pcmk-1
Mover um recurso para um nó específico (criando uma restrição de localização)
crmsh # crm resource move WebSite pcmk-1 pcs # pcs resource move WebSite pcmk-1 pacemaker # crm_resource -r WebSite --move -N pcmk-1
Mover um recurso para longe de seu nó atual (criando uma restrição de localização)
crmsh # crm resource ban Website pcmk-2 pcs # pcs resource ban Website pcmk-2 pacemaker # crm_resource -r WebSite --move
Remova quaisquer restrições criadas pela movimentação de um recurso
crmsh # crm resource unmove WebSite pcs # pcs resource clear WebSite pacemaker # crm_resource -r WebSite --clear
Configuração avançada
Manipular Elementos de Configuração por Tipo
Listar restrições com IDs
pcs # pcs constraint list --full
Remover restrição por ID
pcs # pcs constraint remove cli-ban-Website-on-pcmk-1 crmsh # crm configure remove cli-ban-Website-on-pcmk-1
Os comandos show e edit do crmsh podem ser usados para gerenciar recursos e restrições por tipo:
Mostrar elementos de configuração
crmsh # crm configure show type:primitive crmsh # crm configure edit type:colocation
Mudanças de lote
Faça várias alterações e aplique-as juntas
crmsh # crm crmsh # cib new drbd_cfg crmsh # configure primitive WebData ocf:linbit:drbd params drbd_resource=wwwdata \ op monitor interval=60s crmsh # configure ms WebDataClone WebData meta master-max=1 master-node-max=1 \ clone-max=2 clone-node-max=1 notify=true crmsh # cib commit drbd_cfg crmsh # quit pcs # pcs cluster cib drbd_cfg pcs # pcs -f drbd_cfg resource create WebData ocf:linbit:drbd drbd_resource=wwwdata \ op monitor interval=60s pcs-0.9 # pcs -f drbd_cfg resource master WebDataClone WebData \ master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true pcs-0.10 # pcs -f drbd_cfg resource promotable WebData WebDataClone \ promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 notify=true pcs # pcs cluster cib-push drbd_cfg
Criação de modelo
Criar modelo de recurso com base em primitivos existentes do mesmo tipo
crmsh # crm configure assist template ClusterIP AdminIP
Análise de Log
Mostrar informações sobre eventos de cluster recentes
crmsh # crm history crmsh # peinputs crmsh # transition pe-input-10 crmsh # transition log pe-input-10
Scripts de configuração
Script de configurações de cluster de várias etapas
crmsh # crm script show apache crmsh # crm script run apache \ id=WebSite \ install=true \ virtual-ip:ip=192.168.0.15 \ database:id=WebData \ database:install=true