3.2. Aplicação de parâmetros selecionados do kernel usando a função de configuração do kernel
Siga estas etapas para preparar e aplicar um livro de exercícios possível para configurar remotamente os parâmetros do kernel com efeito persistente em múltiplos sistemas operacionais gerenciados.
Pré-requisitos
-
Sua assinatura do Red Hat Ansible Engine está anexada ao sistema, também chamado control machine, a partir do qual você deseja executar o papel
kernel_settings
. Veja o artigo Como faço o download e instalo o Red Hat Ansible Engine para mais informações. - O possível repositório do motor está habilitado na máquina de controle.
O Motor Possível é instalado na máquina de controle.
NotaVocê não precisa ter o Ansible Engine instalado nos sistemas, também chamado managed hosts, onde você deseja configurar os parâmetros do kernel.
-
O pacote
rhel-system-roles
está instalado na máquina de controle. - Um inventário de hosts gerenciados está presente na máquina de controle e o Ansible Engine é capaz de se conectar a eles.
Procedimento
Opcionalmente, revisar o arquivo
inventory
para fins de ilustração:# cat /home/jdoe/<ansible_project_name>/inventory [testingservers] pdoe@192.168.122.98 fdoe@192.168.122.226 [db-servers] db1.example.com db2.example.com [webservers] web1.example.com web2.example.com 192.0.2.42
O arquivo define o grupo
[testingservers]
e outros grupos. Ele permite rodar o Ansible Engine de forma mais eficaz contra uma coleção específica de sistemas.Criar um arquivo de configuração para definir padrões e escalonamento de privilégios para operações de Motores Ansíveis.
Criar um novo arquivo YAML e abri-lo em um editor de texto, por exemplo:
# vi /home/jdoe/<ansible_project_name>/ansible.cfg
Insira o seguinte conteúdo no arquivo:
[defaults] inventory = ./inventory [privilege_escalation] become = true become_method = sudo become_user = root become_ask_pass = true
A seção
[defaults]
especifica um caminho para o arquivo do inventário de anfitriões gerenciados. A seção[privilege_escalation]
define que os privilégios do usuário sejam transferidos pararoot
nos hosts gerenciados especificados. Isto é necessário para uma configuração bem sucedida dos parâmetros do kernel. Quando o Ansible playbook for executado, você será solicitado a fornecer a senha do usuário. O usuário muda automaticamente pararoot
por meio desudo
após conectar-se a um host gerenciado.
Criar um caderno de atividades que utilize o papel
kernel_settings
.Criar um novo arquivo YAML e abri-lo em um editor de texto, por exemplo:
# vi /home/jdoe/<ansible_project_name>/kernel_roles.yml
Este arquivo representa um playbook e geralmente contém uma lista ordenada de tarefas, também chamada plays, que são executadas contra hosts gerenciados específicos selecionados a partir de seu arquivo
inventory
.Insira o seguinte conteúdo no arquivo:
--- - name: Configure kernel settings hosts: testingservers vars: kernel_settings_sysctl: - name: fs.file-max value: 400000 - name: kernel.threads-max value: 65536 kernel_settings_sysfs: - name: /sys/class/net/lo/mtu value: 65000 kernel_settings_transparent_hugepages: madvise roles: - linux-system-roles.kernel_settings
A chave
name
é opcional. Ela associa uma corda arbitrária com a peça como um rótulo e identifica para que serve a peça. A chavehosts
na peça especifica os anfitriões contra os quais a peça é encenada. O valor ou valores para esta chave podem ser fornecidos como nomes individuais de anfitriões gerenciados ou como grupos de anfitriões, conforme definido no arquivoinventory
.A seção
vars
representa uma lista de variáveis contendo nomes de parâmetros e valores de kernel selecionados para os quais eles têm que ser definidos.A chave
roles
especifica qual papel do sistema irá configurar os parâmetros e valores mencionados na seçãovars
.NotaVocê pode modificar os parâmetros do kernel e seus valores no playbook para atender às suas necessidades.
Opcionalmente, verifique se a sintaxe em sua peça está correta.
# ansible-playbook --syntax-check kernel-roles.yml playbook: kernel-roles.yml
Este exemplo mostra a verificação bem sucedida de um livro de brincadeiras.
Execute seu livro de brincadeiras.
# ansible-playbook kernel-roles.yml BECOME password: PLAY [Configure kernel settings] ... PLAY RECAP ** fdoe@192.168.122.226 : ok=10 changed=4 unreachable=0 failed=0 skipped=6 rescued=0 ignored=0 pdoe@192.168.122.98 : ok=10 changed=4 unreachable=0 failed=0 skipped=6 rescued=0 ignored=0
Antes do Ansible Engine executar seu playbook, você será solicitado a obter sua senha e para que um usuário em hosts gerenciados possa ser trocado para
root
, o que é necessário para configurar os parâmetros do kernel.A seção recapitulativa mostra que a peça terminou com sucesso (
failed=0
) para todos os anfitriões gerenciados, e que 4 parâmetros do kernel foram aplicados (changed=4
).- Reinicie seus anfitriões gerenciados e verifique os parâmetros do núcleo afetado para verificar se as mudanças foram aplicadas e persistem em todas as reinicializações.
Recursos adicionais
- Para mais informações sobre as funções do Sistema RHEL, consulte Introdução às funções do Sistema RHEL.
-
Para mais informações sobre todas as variáveis atualmente suportadas em
kernel_settings
, consulte os arquivosREADME.html
eREADME.md
no diretório/usr/share/doc/rhel-system-roles/kernel_settings/
. - Para mais detalhes sobre Inventários Ansíveis, consulte Trabalhando com Inventário em Documentação Possível.
- Para obter mais detalhes sobre os arquivos de configuração de Ansible, consulte Configuring Ansible in Ansible documentation.
- Para mais detalhes sobre Playbooks Ansíveis, consulte Trabalhando com Playbooks na documentação Ansible.
- Para obter mais detalhes sobre Variáveis Ansíveis, consulte Utilização de Variáveis em Documentação Possível.
- Para mais detalhes sobre os papéis possíveis, consulte Papéis em documentação possível.