Tarefas de administração e configuração usando as funções do sistema no RHEL
Aplicação das funções do sistema RHEL usando os playbooks da Plataforma de Automação Possível da Red Hat para realizar tarefas de administração do sistema
Resumo
Tornando o código aberto mais inclusivo
A Red Hat tem o compromisso de substituir a linguagem problemática em nosso código, documentação e propriedades da web. Estamos começando com estes quatro termos: master, slave, blacklist e whitelist. Por causa da enormidade deste esforço, estas mudanças serão implementadas gradualmente ao longo de vários lançamentos futuros. Para mais detalhes, veja a mensagem de nosso CTO Chris Wright.
Fornecendo feedback sobre a documentação da Red Hat
Agradecemos sua contribuição em nossa documentação. Por favor, diga-nos como podemos melhorá-la. Para fazer isso:
Para comentários simples sobre passagens específicas:
- Certifique-se de que você está visualizando a documentação no formato Multi-page HTML. Além disso, certifique-se de ver o botão Feedback no canto superior direito do documento.
- Use o cursor do mouse para destacar a parte do texto que você deseja comentar.
- Clique no pop-up Add Feedback que aparece abaixo do texto destacado.
- Siga as instruções apresentadas.
Para enviar comentários mais complexos, crie um bilhete Bugzilla:
- Ir para o site da Bugzilla.
- Como Componente, use Documentation.
- Preencha o campo Description com sua sugestão de melhoria. Inclua um link para a(s) parte(s) relevante(s) da documentação.
- Clique em Submit Bug.
Capítulo 1. Começando com os papéis do Sistema RHEL
Esta seção explica quais são os papéis do Sistema RHEL. Além disso, descreve como aplicar um determinado papel através de um caderno de atividades para realizar várias tarefas administrativas do sistema.
1.1. Introdução aos papéis do sistema RHEL
O Sistema RHEL Roles é um conjunto de funções e módulos possíveis. As funções do sistema RHEL fornecem uma interface de configuração para gerenciar remotamente vários sistemas RHEL. A interface permite gerenciar configurações de sistema através de múltiplas versões do RHEL, bem como adotar novas versões principais.
No Red Hat Enterprise Linux 8, a interface atualmente consiste nas seguintes funções:
- kdump
- rede
- selinux
- armazenagem
- certificado
- kernel_settings
- madeireiro
- métricas
- nbde_client e nbde_server
- timesync
- tlog
Todas essas funções são fornecidas pelo pacote rhel-system-roles
disponível no repositório AppStream
.
Recursos adicionais
- Para uma visão geral dos Papéis do Sistema RHEL, veja o artigo do Red Hat Enterprise Linux (RHEL) System Roles Red Hat Knowledgebase.
-
Para informações sobre uma função específica, consulte a documentação sob o diretório
/usr/share/doc/rhel-system-roles
. Esta documentação é instalada automaticamente com o pacoterhel-system-roles
. - Introdução ao papel do sistema SELinux
- Introdução à função de armazenamento
1.2. Terminologia dos papéis do Sistema RHEL
Você pode encontrar os seguintes termos ao longo desta documentação:
Terminologia dos papéis do sistema
- Livro de jogo possível
- Os playbooks são a linguagem de configuração, implantação e orquestração do Ansible. Eles podem descrever uma política que você quer que seus sistemas remotos apliquem, ou um conjunto de passos em um processo geral de TI.
- Nó de controle
- Qualquer máquina com Ansible instalado. Você pode executar comandos e playbooks, invocando /usr/bin/ansible ou /usr/bin/ansible-playbook, a partir de qualquer nó de controle. Você pode usar qualquer computador que tenha o Python instalado nele como um nó de controle - laptops, desktops compartilhados e servidores podem todos rodar o Ansible. Entretanto, você não pode usar uma máquina Windows como nó de controle. Você pode ter múltiplos nós de controle.
- Inventário
- Uma lista de nós administrados. Um arquivo de inventário também é às vezes chamado de "arquivo hospedeiro". Seu inventário pode especificar informações como endereço IP para cada nó gerenciado. Um inventário também pode organizar nós administrados, criando e aninhando grupos para facilitar o escalonamento. Para saber mais sobre o inventário, consulte a seção Trabalhando com o inventário.
- Nós administrados
- Os dispositivos de rede, servidores, ou ambos que você administra com Ansible. Os nós gerenciados também são às vezes chamados de "hosts". O Ansible não é instalado em nós gerenciados.
1.3. Aplicando um papel
O procedimento a seguir descreve como aplicar uma função específica.
Pré-requisitos
O pacote
rhel-system-roles
está instalado no sistema que você deseja usar como um nó de controle:# yum install rhel-system-roles
O repositório Ansible Engine está habilitado, e o pacote
ansible
está instalado no sistema que você deseja usar como um nó de controle. Você precisa do pacoteansible
para executar playbooks que usam os papéis do sistema RHEL.Se você não tiver uma assinatura do Red Hat Ansible Engine, você pode usar uma versão suportada limitada do Red Hat Ansible Engine fornecida com sua assinatura do Red Hat Enterprise Linux. Neste caso, siga estes passos:
Habilitar o repositório RHEL Ansible Engine:
# subscription-manager refresh # subscription-manager repos --enable ansible-2-for-rhel-8-x86_64-rpms
Instalar Motor Possível:
# yum install ansible
- Se você tem uma assinatura de Red Hat Ansible Engine, siga o procedimento descrito em Como faço para baixar e instalar o Red Hat Ansible Engine?
Você é capaz de criar um livro de brincadeiras possível.
Os playbooks representam a linguagem de configuração, implantação e orquestração do Ansible. Usando playbooks, você pode declarar e gerenciar configurações de máquinas remotas, implantar várias máquinas remotas ou etapas de orquestração de qualquer processo encomendado manualmente.
Um playbook é uma lista de um ou mais
plays
. Cadaplay
pode incluir variáveis, tarefas ou papéis possíveis.Os livros didáticos são legíveis por humanos e são expressos no formato
YAML
.Para mais informações sobre livros didáticos, consulte Documentação possível.
Procedimento
Crie um caderno de atividades, incluindo o papel necessário.
O exemplo a seguir mostra como usar os papéis através da opção
roles:
para um determinadoplay
:--- - hosts: webservers roles: - rhel-system-roles.network - rhel-system-roles.timesync
Para mais informações sobre o uso de papéis em livros didáticos, consulte Documentação possível.
Veja Exemplos possíveis, por exemplo, livros didáticos.
NotaCada função inclui um arquivo README, que documenta como utilizar a função e os valores dos parâmetros suportados. Você também pode encontrar um exemplo de playbook para um determinado papel sob o diretório de documentação do papel. Tal diretório de documentação é fornecido por padrão com o pacote
rhel-system-roles
, e pode ser encontrado no local a seguir:/usr/share/doc/rhel-system-roles/SUBSYSTEM/
Substituir SUBSYSTEM pelo nome da função requerida, como
selinux
,kdump
,network
,timesync
, oustorage
.Verificar a sintaxe do playbook:
#
ansible-playbook --syntax-check name.of.the.playbook
O comando
ansible-playbook
oferece uma opção--syntax-check
que você pode usar para verificar a sintaxe de um playbook.Executar o playbook nos anfitriões-alvo executando o comando
ansible-playbook
:#
ansible-playbook -i name.of.the.inventory name.of.the.playbook
Um inventário é uma lista de sistemas contra os quais o Ansible funciona. Para mais informações sobre como criar e inventariar, e como trabalhar com ele, consulte a documentação do Ansible.
Se você não tiver um inventário, você pode criá-lo no momento da execução
ansible-playbook
:Se você tiver apenas um anfitrião específico contra o qual você deseja executar o playbook, use:
# ansible-playbook -i host1, name.of.the.playbook
Se você tiver vários anfitriões alvo contra os quais você deseja executar o livro de jogo, use:
# ansible-playbook -i host1,host2,....,hostn name.of.the.playbook
Recursos adicionais
-
Para obter informações mais detalhadas sobre o uso do comando
ansible-playbook
, consulte a página de manualansible-playbook
.
1.4. Recursos adicionais
- Para uma visão geral dos Papéis do Sistema RHEL, veja o artigo do Red Hat Enterprise Linux (RHEL) System Roles Red Hat Knowledgebase.
- Gerenciamento do armazenamento local usando as funções do sistema RHEL
- Implantando a mesma configuração SELinux em vários sistemas utilizando as funções do sistema RHEL
Capítulo 2. Instalação das funções do sistema RHEL
Antes de começar a usar as funções do sistema, você deve instalá-lo em seu sistema.
2.1. Instalação de funções do sistema RHEL em seu sistema
Este parágrafo é a introdução do módulo de procedimento: uma breve descrição do procedimento.
Pré-requisitos
- Você tem uma assinatura de Red Hat Ansible Engine. Veja o procedimento Como faço para baixar e instalar o Red Hat Ansible Engine?
- Você tem os pacotes Ansíveis instalados no sistema que você deseja usar como nó de controle:
Procedimento
Instale o pacote
rhel-system-roles
no sistema que você deseja usar como nó de controle:# yum instalar rhel-system-roles
Se você não tiver uma assinatura do Red Hat Ansible Engine, você pode usar uma versão suportada limitada do Red Hat Ansible Engine fornecida com sua assinatura do Red Hat Enterprise Linux. Neste caso, siga estes passos:
Habilitar o repositório RHEL Ansible Engine:
# subscription-manager refresh # subscription-manager repos --enable ansible-2-for-rhel-8-x86_64-rpms
Instalar Motor Possível:
# yum instalar possível
Como resultado, você é capaz de criar um livro de brincadeiras possível.
Recursos adicionais
- Para visão geral dos papéis do sistema RHEL, veja os papéis do sistema Red Hat Enterprise Linux (RHEL)
- Para informações mais detalhadas sobre o uso do comando ansible-playbook, consulte a página de manual ansible-playbook.
Capítulo 3. Utilização de funções possíveis para configurar permanentemente os parâmetros do kernel
Como um usuário experiente com bom conhecimento do Red Hat Ansible Engine, você pode usar a função kernel_settings
para configurar os parâmetros do kernel em múltiplos clientes ao mesmo tempo. Esta solução:
- Fornece uma interface amigável com ajuste de entrada eficiente.
- Mantém todos os parâmetros de kernel pretendidos em um só lugar.
Após executar a função kernel_settings
a partir da máquina de controle, os parâmetros do núcleo são aplicados imediatamente aos sistemas gerenciados e persistem em todas as reinicializações.
3.1. Introdução ao papel das configurações do kernel
As funções do Sistema RHEL são uma coleção de funções e módulos da Plataforma de Automação Possível que fornecem uma interface de configuração consistente para gerenciar remotamente vários sistemas.
As funções do sistema RHEL foram introduzidas para configurações automatizadas do kernel usando a função do sistema kernel_settings
. O pacote rhel-system-roles
contém esta função do sistema, e também a documentação de referência.
Para aplicar os parâmetros do kernel em um ou mais sistemas de forma automatizada, use a função kernel_settings
com uma ou mais de suas variáveis de papel de sua escolha em um playbook. Um playbook é uma lista de uma ou mais peças que são legíveis por humanos, e são escritas no formato YAML.
Você pode usar um arquivo de inventário para definir um conjunto de sistemas que você deseja que o Ansible Engine configure de acordo com o playbook.
Com a função kernel_settings
você pode configurar:
-
Os parâmetros do kernel usando a variável de função
kernel_settings_sysctl
-
Vários subsistemas de kernel, dispositivos de hardware e drivers de dispositivos usando a variável de função
kernel_settings_sysfs
-
A afinidade da CPU para o gerente de serviços
systemd
e processa-a forquilha usando a variável de funçãokernel_settings_systemd_cpu_affinity
-
O subsistema de memória do kernel hugepages transparentes usando as variáveis de função
kernel_settings_transparent_hugepages
ekernel_settings_transparent_hugepages_defrag
Recursos adicionais
-
Para uma referência detalhada sobre as variáveis de papel
kernel_settings
e para os exemplos de playbooks, instale o pacoterhel-system-roles
e consulte os arquivosREADME.md
eREADME.html
no diretório/usr/share/doc/rhel-system-roles/kernel_settings/
. - Para mais informações sobre playbooks, consulte Trabalhando com playbooks na documentação Ansible.
- Para mais informações sobre como criar e usar inventários, veja Como construir seu inventário em Documentação possível.
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.
Capítulo 4. Utilização de funções do sistema para configurar conexões de rede
A função do sistema network
na RHEL permite aos administradores automatizar a configuração e tarefas de gerenciamento relacionadas à rede usando o Ansible.
4.1. Configuração de uma conexão Ethernet
Esta seção descreve diferentes maneiras de configurar uma conexão Ethernet com endereços IP estáticos e dinâmicos.
4.1.1. Configuração de uma conexão Ethernet estática usando as funções do sistema RHEL
Este procedimento descreve como usar as funções do Sistema RHEL para adicionar remotamente uma conexão Ethernet para a interface enp7s0
com as seguintes configurações, executando um livro de exercícios possível:
-
Um endereço IPv4 estático -
192.0.2.1
com uma máscara de sub-rede/24
-
Um endereço IPv6 estático -
2001:db8:1::1
com uma máscara de sub-rede/64
-
Um gateway padrão IPv4 -
192.0.2.254
-
Um gateway padrão IPv6 -
2001:db8:1::fffe
-
Um servidor DNS IPv4 -
192.0.2.200
-
Um servidor DNS IPv6 -
2001:db8:1::ffbb
-
Um domínio de busca DNS -
example.com
Execute este procedimento no Nó de controle possível.
Pré-requisitos
-
Os pacotes
ansible
erhel-system-roles
estão instalados no nó de controle. -
Se você usar um usuário remoto diferente de
root
ao executar o playbook, este usuário tem as permissões apropriadassudo
no nó gerenciado. - O anfitrião usa o NetworkManager para configurar a rede.
Procedimento
Se o anfitrião no qual você deseja executar as instruções no playbook ainda não estiver inventariado, adicione o IP ou nome deste anfitrião ao arquivo
/etc/ansible/hosts
Inventário possível:node.example.com
Crie o playbook
~/ethernet-static-IP.yml
com o seguinte conteúdo:--- - name: Configure an Ethernet connection with static IP hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network vars: network_connections: - name: enp7s0 type: ethernet autoconnect: yes ip: address: - 192.0.2.1/24 - 2001:db8:1::1/64 gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com state: up
Execute o livro de brincadeiras:
Para se conectar como usuário
root
ao host gerenciado, entre:#
ansible-playbook -u root ~/ethernet-static-IP.yml
Para conectar-se como usuário ao host administrado, entre:
#
ansible-playbook -u user_name --ask-become-pass ~/ethernet-static-IP.yml
A opção
--ask-become-pass
garante que o comandoansible-playbook
solicita a senhasudo
do usuário definido no-u user_name
opção.
Se você não especificar o
-u user_name
ansible-playbook
se conecta ao host gerenciado como o usuário que está atualmente conectado ao nó de controle.
Recursos adicionais
-
Para detalhes sobre os parâmetros usados em
network_connections
e para informações adicionais sobre o Sistema de Papelnetwork
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
4.1.2. Configuração de uma conexão Ethernet dinâmica usando as funções do sistema RHEL
Este procedimento descreve como usar as funções do Sistema RHEL para adicionar remotamente uma conexão Ethernet dinâmica para a interface enp7s0
, executando um livro de exercícios possível. Com esta configuração, a conexão de rede solicita as configurações IP para esta conexão a partir de um servidor DHCP. Execute este procedimento no nó de controle do Ansible control.
Pré-requisitos
- Um servidor DHCP está disponível na rede.
-
Os pacotes
ansible
erhel-system-roles
estão instalados no nó de controle. -
Se você usar um usuário remoto diferente de
root
ao executar o playbook, este usuário tem as permissões apropriadassudo
no nó gerenciado. - O anfitrião usa o NetworkManager para configurar a rede.
Procedimento
Se o anfitrião no qual você deseja executar as instruções no playbook ainda não estiver inventariado, adicione o IP ou nome deste anfitrião ao arquivo
/etc/ansible/hosts
Inventário possível:node.example.com
Crie o playbook
~/ethernet-dynamic-IP.yml
com o seguinte conteúdo:--- - name: Configure an Ethernet connection with dynamic IP hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network vars: network_connections: - name: enp7s0 type: ethernet autoconnect: yes ip: dhcp4: yes auto6: yes state: up
Execute o livro de brincadeiras:
Para se conectar como usuário
root
ao host gerenciado, entre:#
ansible-playbook -u root ~/ethernet-dynamic-IP.yml
Para conectar-se como usuário ao host administrado, entre:
#
ansible-playbook -u user_name --ask-become-pass ~/ethernet-dynamic-IP.yml
A opção
--ask-become-pass
garante que o comandoansible-playbook
solicita a senhasudo
do usuário definida no-u user_name
opção.
Se você não especificar o
-u user_name
ansible-playbook
se conecta ao host gerenciado como o usuário que está atualmente conectado ao nó de controle.
Recursos adicionais
-
Para detalhes sobre os parâmetros usados em
network_connections
e para informações adicionais sobre o Sistema de Papelnetwork
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
4.2. Configurando a etiquetagem VLAN
Esta seção descreve como configurar a Virtual Local Area Network (VLAN). Uma VLAN é uma rede lógica dentro de uma rede física. Os pacotes de tags da interface VLAN com o ID da VLAN ao passar pela interface, e remove as tags dos pacotes de retorno.
Você cria uma interface VLAN em cima de outra interface, como uma Ethernet, bond, equipe ou dispositivo de ponte. Esta interface é chamada de parent interface
.
4.2.1. Configuração da etiquetagem VLAN usando as funções do sistema
Você pode usar a função do sistema networking
RHEL para configurar a etiquetagem VLAN. Este procedimento descreve como adicionar uma conexão Ethernet e uma VLAN com ID 10
que usa esta conexão Ethernet. Como o dispositivo pai, a conexão VLAN contém as configurações IP, gateway padrão e DNS.
Dependendo de seu ambiente, ajuste o jogo de acordo. Por exemplo:
-
Para usar a VLAN como uma porta em outras conexões, como uma ligação, omitir o atributo
ip
, e definir a configuração IP na configuração pai. -
Para usar os dispositivos de equipe, ponte, ou bond na VLAN, adapte os atributos
interface_name
etype
dos portos que você usa na VLAN.
Pré-requisitos
-
Os pacotes
ansible
erhel-system-roles
estão instalados no nó de controle. -
Se você usar um usuário remoto diferente de
root
ao executar o playbook, este usuário tem as permissões apropriadassudo
no nó gerenciado.
Procedimento
Se o anfitrião no qual você deseja executar as instruções no playbook ainda não estiver inventariado, adicione o IP ou nome deste anfitrião ao arquivo
/etc/ansible/hosts
Inventário possível:node.example.com
Crie o playbook
~/vlan-ethernet.yml
com o seguinte conteúdo:--- - name: Configure a VLAN that uses an Ethernet connection hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network vars: network_connections: # Add an Ethernet profile for the underlying device of the VLAN - name: enp1s0 type: ethernet interface_name: enp1s0 autoconnect: yes state: up ip: dhcp4: no auto6: no # Define the VLAN profile - name: vlan10 type: vlan ip: address: - "192.0.2.1/24" - "2001:db8:1::1/64" gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com vlan_id: 10 parent: enp1s0 state: up
O atributo
parent
no perfil da VLAN configura a VLAN para operar em cima do dispositivoenp1s0
.Execute o livro de brincadeiras:
Para se conectar como usuário
root
ao host gerenciado, entre:#
ansible-playbook -u root ~/vlan-ethernet.yml
Para conectar-se como usuário ao host administrado, entre:
#
ansible-playbook -u user_name --ask-become-pass ~/vlan-ethernet.yml
A opção
--ask-become-pass
garante que o comandoansible-playbook
solicita a senhasudo
do usuário definido no-u user_name
opção.
Se você não especificar o
-u user_name
ansible-playbook
se conecta ao host gerenciado como o usuário que está atualmente conectado ao nó de controle.
Recursos adicionais
-
Para detalhes sobre os parâmetros usados em
network_connections
e para informações adicionais sobre o Sistema de Papelnetwork
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
4.3. Configuração de uma ponte de rede
Uma ponte de rede é um dispositivo de camada de ligação que encaminha o tráfego entre redes com base em uma tabela de endereços MAC. A ponte constrói a tabela de endereços MAC ouvindo o tráfego da rede e, assim, aprendendo quais hosts estão conectados a cada rede. Por exemplo, você pode usar uma ponte de software em um host Red Hat Enterprise Linux 8 para emular uma ponte de hardware ou em ambientes de virtualização, para integrar máquinas virtuais (VM) à mesma rede que o host.
Uma ponte requer um dispositivo de rede em cada rede que a ponte deve conectar. Quando você configura uma ponte, a ponte é chamada controller
e os dispositivos que ela usa ports
.
Você pode criar pontes em diferentes tipos de dispositivos, como por exemplo:
- Dispositivos Ethernet físicos e virtuais
- Títulos de rede
- Equipes de rede
- Dispositivos VLAN
Devido ao padrão IEEE 802.11 que especifica o uso de quadros de 3 endereços em Wi-Fi para o uso eficiente do tempo de antena, não é possível configurar uma ponte sobre redes Wi-Fi operando nos modos Ad-Hoc ou Infra-estrutura.
4.3.1. Configuração de uma ponte de rede usando as funções do sistema RHEL
Você pode usar o sistema networking
RHEL Role para configurar uma ponte Linux. Este procedimento descreve como configurar uma ponte de rede que utiliza dois dispositivos Ethernet e define endereços IPv4 e IPv6, gateways padrão e configuração DNS.
Defina a configuração IP na ponte e não nas portas da ponte Linux.
Pré-requisitos
-
Os pacotes
ansible
erhel-system-roles
estão instalados no nó de controle. -
Se você usar um usuário remoto diferente de
root
ao executar o playbook, este usuário tem as permissões apropriadassudo
no nó gerenciado. - Dois ou mais dispositivos físicos ou virtuais de rede são instalados no servidor.
Procedimento
Se o anfitrião no qual você deseja executar as instruções no playbook ainda não estiver inventariado, adicione o IP ou nome deste anfitrião ao arquivo
/etc/ansible/hosts
Inventário possível:node.example.com
Crie o playbook
~/bridge-ethernet.yml
com o seguinte conteúdo:--- - name: Configure a network bridge that uses two Ethernet ports hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network vars: network_connections: # Define the bridge profile - name: bridge0 type: bridge interface_name: bridge0 ip: address: - "192.0.2.1/24" - "2001:db8:1::1/64" gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com state: up # Add an Ethernet profile to the bridge - name: bridge0-port1 interface_name: enp7s0 type: ethernet master: bridge0 slave_type: bridge state: up # Add a second Ethernet profile to the bridge - name: bridge0-port2 interface_name: enp8s0 type: ethernet master: bridge0 slave_type: bridge state: up
Execute o livro de brincadeiras:
Para se conectar como usuário
root
ao host gerenciado, entre:#
ansible-playbook -u root ~/bridge-ethernet.yml
Para conectar-se como usuário ao host administrado, entre:
#
ansible-playbook -u user_name --ask-become-pass ~/bridge-ethernet.yml
A opção
--ask-become-pass
garante que o comandoansible-playbook
solicita a senhasudo
do usuário definido no-u user_name
opção.
Se você não especificar o
-u user_name
ansible-playbook
se conecta ao host gerenciado como o usuário que está atualmente conectado ao nó de controle.
Recursos adicionais
-
Para detalhes sobre os parâmetros usados em
network_connections
e para informações adicionais sobre o Sistema de Papelnetwork
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
4.4. Configurando a ligação em rede
Esta seção descreve o básico da ligação em rede, as diferenças entre ligação e equipe, e como configurar uma ligação em rede no Red Hat Enterprise Linux 8.
Você pode criar vínculos em diferentes tipos de dispositivos, como por exemplo:
- Dispositivos Ethernet físicos e virtuais
- Pontes de rede
- Equipes de rede
- Dispositivos VLAN
4.4.1. Configuração de um vínculo de rede usando as funções do sistema RHEL
Você pode usar a função do Sistema RHEL network
para configurar um vínculo de rede. Este procedimento descreve como configurar um vínculo em modo de backup ativo que usa dois dispositivos Ethernet e define um endereço IPv4 e IPv6, gateways padrão e configuração DNS.
Defina a configuração IP na ponte e não nas portas da ponte Linux.
Pré-requisitos
-
Os pacotes
ansible
erhel-system-roles
estão instalados no nó de controle. -
Se você usar um usuário remoto diferente de
root
ao executar o playbook, este usuário tem as permissões apropriadassudo
no nó gerenciado. - Dois ou mais dispositivos físicos ou virtuais de rede são instalados no servidor.
Procedimento
Se o anfitrião no qual você deseja executar as instruções no playbook ainda não estiver inventariado, adicione o IP ou nome deste anfitrião ao arquivo
/etc/ansible/hosts
Inventário possível:node.example.com
Crie o playbook
~/bond-ethernet.yml
com o seguinte conteúdo:--- - name: Configure a network bond that uses two Ethernet ports hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network vars: network_connections: # Define the bond profile - name: bond0 type: bond interface_name: bond0 ip: address: - "192.0.2.1/24" - "2001:db8:1::1/64" gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com bond: mode: active-backup state: up # Add an Ethernet profile to the bond - name: bond0-port1 interface_name: enp7s0 type: ethernet master: bond0 state: up # Add a second Ethernet profile to the bond - name: bond0-port2 interface_name: enp8s0 type: ethernet master: bond0 state: up
Execute o livro de brincadeiras:
Para se conectar como usuário
root
ao host gerenciado, entre:#
ansible-playbook -u root ~/bond-ethernet.yml
Para conectar-se como usuário ao host administrado, entre:
#
ansible-playbook -u user_name --ask-become-pass ~/bond-ethernet.yml
A opção
--ask-become-pass
garante que o comandoansible-playbook
solicita a senhasudo
do usuário definido no-u user_name
opção.
Se você não especificar o
-u user_name
ansible-playbook
se conecta ao host gerenciado como o usuário que está atualmente conectado ao nó de controle.
Recursos adicionais
-
Para detalhes sobre os parâmetros usados em
network_connections
e para informações adicionais sobre o Sistema de Papelnetwork
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
4.5. Autenticação de um cliente RHEL para a rede usando a norma 802.1X
Os administradores freqüentemente usam o Controle de Acesso à Rede (NAC) baseado no padrão IEEE 802.1X para proteger uma rede contra clientes LAN e Wi-Fi não autorizados. Os procedimentos nesta seção descrevem diferentes opções para configurar a autenticação da rede.
4.5.1. Configuração de uma conexão Ethernet estática com autenticação de rede 802.1X usando as funções do sistema RHEL
Usando as funções do Sistema RHEL, você pode automatizar a criação de uma conexão Ethernet que usa o padrão 802.1X para autenticar o cliente. Este procedimento descreve como adicionar remotamente uma conexão Ethernet para a interface enp1s0
com as seguintes configurações, executando um Livro de Jogadas Possível:
-
Um endereço IPv4 estático -
192.0.2.1
com uma máscara de sub-rede/24
-
Um endereço IPv6 estático -
2001:db8:1::1
com uma máscara de sub-rede/64
-
Um gateway padrão IPv4 -
192.0.2.254
-
Um gateway padrão IPv6 -
2001:db8:1::fffe
-
Um servidor DNS IPv4 -
192.0.2.200
-
Um servidor DNS IPv6 -
2001:db8:1::ffbb
-
Um domínio de busca DNS -
example.com
-
802.1X autenticação de rede usando o protocolo
TLS
Extensible Authentication Protocol (EAP)
Execute este procedimento no Nó de controle possível.
Pré-requisitos
-
Os pacotes
ansible
erhel-system-roles
estão instalados no nó de controle. -
Se você usar um usuário remoto diferente de
root
ao executar o playbook, você deve ter as permissões apropriadassudo
no nó gerenciado. - A rede suporta autenticação de rede 802.1X.
- O nó gerenciado utiliza o NetworkManager.
Os seguintes arquivos necessários para autenticação TLS existem no nó de controle:
-
A chave do cliente armazenada no arquivo
/srv/data/client.key
. -
O certificado do cliente armazenado no arquivo
/srv/data/client.crt
. -
O certificado da Autoridade Certificadora (CA) armazenado no arquivo
/srv/data/ca.crt
.
-
A chave do cliente armazenada no arquivo
Procedimento
Se o anfitrião no qual você deseja executar as instruções no playbook ainda não estiver inventariado, adicione o IP ou nome deste anfitrião ao arquivo
/etc/ansible/hosts
Inventário possível:node.example.com
Crie o playbook
~/enable-802.1x.yml
com o seguinte conteúdo:--- - name: Configure an Ethernet connection with 802.1X authentication hosts: node.example.com become: true tasks: - name: Copy client key for 802.1X authentication copy: src: "/srv/data/client.key" dest: "/etc/pki/tls/private/client.key" mode: 0600 - name: Copy client certificate for 802.1X authentication copy: src: "/srv/data/client.crt" dest: "/etc/pki/tls/certs/client.crt" - name: Copy CA certificate for 802.1X authentication copy: src: "/srv/data/ca.crt" dest: "/etc/pki/ca-trust/source/anchors/ca.crt" - include_role: name: linux-system-roles.network vars: network_connections: - name: enp1s0 type: ethernet autoconnect: yes ip: address: - 192.0.2.1/24 - 2001:db8:1::1/64 gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com ieee802_1x: identity: user_name eap: tls private_key: "/etc/pki/tls/private/client.key" private_key_password: "password" client_cert: "/etc/pki/tls/certs/client.crt" ca_cert: "/etc/pki/ca-trust/source/anchors/ca.crt" domain_suffix_match: example.com state: up
Execute o livro de brincadeiras:
Para se conectar como usuário
root
ao host gerenciado, entre:#
ansible-playbook -u root ~/enable-802.1x.yml
Para conectar-se como usuário ao host administrado, entre:
#
ansible-playbook -u user_name --ask-become-pass ~/ethernet-static-IP.yml
A opção
--ask-become-pass
garante que o comandoansible-playbook
solicita a senhasudo
do usuário definido no-u user_name
opção.
Se você não especificar o
-u user_name
ansible-playbook
se conecta ao host gerenciado como o usuário que está atualmente conectado ao nó de controle.
Recursos adicionais
-
Para detalhes sobre os parâmetros usados em
network_connections
e para informações adicionais sobre o Sistema de Papelnetwork
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre os parâmetros 802.1X, consulte a seção
ieee802_1x
no arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
4.6. Gerenciando a configuração padrão do gateway
O gateway padrão é um roteador que encaminha pacotes de rede quando nenhuma outra rota corresponde ao destino de um pacote. Em uma rede local, o gateway padrão é tipicamente o host que está um salto mais próximo da Internet.
4.6.1. Configurando o gateway padrão em uma conexão existente usando as funções do sistema
Você pode usar a função do Sistema RHEL networking
para definir o gateway padrão.
Quando você executa uma peça que usa o Sistema Função networking
RHEL, o Sistema Função substitui um perfil de conexão existente com o mesmo nome se as configurações não coincidirem com as especificadas na peça. Portanto, sempre especifique toda a configuração do perfil de conexão de rede na peça, mesmo que, por exemplo, a configuração IP já exista. Caso contrário, o papel redefine estes valores com seus padrões.
Dependendo se já existe, o procedimento cria ou atualiza o perfil de conexão enp1s0
com as seguintes configurações:
-
Um endereço IPv4 estático -
198.51.100.20
com uma máscara de sub-rede/24
-
Um endereço IPv6 estático -
2001:db8:1::1
com uma máscara de sub-rede/64
-
Um gateway padrão IPv4 -
198.51.100.254
-
Um gateway padrão IPv6 -
2001:db8:1::fffe
-
Um servidor DNS IPv4 -
198.51.100.200
-
Um servidor DNS IPv6 -
2001:db8:1::ffbb
-
Um domínio de busca DNS -
example.com
Pré-requisitos
-
Os pacotes
ansible
erhel-system-roles
estão instalados no nó de controle. -
Se você usar um usuário remoto diferente de
root
ao executar o playbook, este usuário tem as permissões apropriadassudo
no nó gerenciado.
Procedimento
Se o anfitrião no qual você deseja executar as instruções no playbook ainda não estiver inventariado, adicione o IP ou nome deste anfitrião ao arquivo
/etc/ansible/hosts
Inventário possível:node.example.com
Crie o playbook
~/ethernet-connection.yml
com o seguinte conteúdo:--- - name: Configure an Ethernet connection with static IP and default gateway hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network vars: network_connections: - name: enp1s0 type: ethernet autoconnect: yes ip: address: - 198.51.100.20/24 - 2001:db8:1::1/64 gateway4: 198.51.100.254 gateway6: 2001:db8:1::fffe dns: - 198.51.100.200 - 2001:db8:1::ffbb dns_search: - example.com state: up
Execute o livro de brincadeiras:
Para se conectar como usuário
root
ao host gerenciado, entre:#
ansible-playbook -u root ~/ethernet-connection.yml
Para conectar-se como usuário ao host administrado, entre:
#
ansible-playbook -u user_name --ask-become-pass ~/ethernet-connection.yml
A opção
--ask-become-pass
garante que o comandoansible-playbook
solicita a senhasudo
do usuário definido no-u user_name
opção.
Se você não especificar o
-u user_name
ansible-playbook
se conecta ao host gerenciado como o usuário que está atualmente conectado ao nó de controle.
Recursos adicionais
-
Para detalhes sobre os parâmetros usados em
network_connections
e para informações adicionais sobre o Sistema de Papelnetwork
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
4.7. Configuração de rotas estáticas
Por default, e se um gateway default for configurado, o Red Hat Enterprise Linux encaminha o tráfego para redes que não estão diretamente conectadas ao host para o gateway default. Usando uma rota estática, você pode configurar que o Red Hat Enterprise Linux encaminhe o tráfego para um host ou rede específica para um roteador diferente do gateway default. Esta seção descreve diferentes opções de como configurar rotas estáticas.
4.7.1. Configuração de uma rota estática usando as funções do sistema RHEL
Você pode usar o sistema networking
RHEL Role para configurar rotas estáticas.
Quando você executa uma peça que usa o Sistema Função networking
RHEL, o Sistema Função substitui um perfil de conexão existente com o mesmo nome se as configurações não coincidirem com as especificadas na peça. Portanto, sempre especifique toda a configuração do perfil de conexão de rede na peça, mesmo que, por exemplo, a configuração IP já exista. Caso contrário, o papel redefine estes valores com seus padrões.
Dependendo se já existe, o procedimento cria ou atualiza o perfil de conexão enp7s0
com as seguintes configurações:
-
Um endereço IPv4 estático -
198.51.100.20
com uma máscara de sub-rede/24
-
Um endereço IPv6 estático -
2001:db8:1::1
com uma máscara de sub-rede/64
-
Um gateway padrão IPv4 -
198.51.100.254
-
Um gateway padrão IPv6 -
2001:db8:1::fffe
-
Um servidor DNS IPv4 -
198.51.100.200
-
Um servidor DNS IPv6 -
2001:db8:1::ffbb
-
Um domínio de busca DNS -
example.com
Rotas estáticas:
-
192.0.2.0/24
com gateway198.51.100.1
-
203.0.113.0/24
com gateway198.51.100.2
-
Pré-requisitos
-
Os pacotes
ansible
erhel-system-roles
estão instalados no nó de controle. -
Se você usar um usuário remoto diferente de
root
ao executar o playbook, este usuário tem as permissões apropriadassudo
no nó gerenciado.
Procedimento
Se o anfitrião no qual você deseja executar as instruções no playbook ainda não estiver inventariado, adicione o IP ou nome deste anfitrião ao arquivo
/etc/ansible/hosts
Inventário possível:node.example.com
Crie o playbook
~/add-static-routes.yml
com o seguinte conteúdo:--- - name: Configure an Ethernet connection with static IP and additional routes hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network vars: network_connections: - name: enp7s0 type: ethernet autoconnect: yes ip: address: - 198.51.100.20/24 - 2001:db8:1::1/64 gateway4: 198.51.100.254 gateway6: 2001:db8:1::fffe dns: - 198.51.100.200 - 2001:db8:1::ffbb dns_search: - example.com route: - network: 192.0.2.0 prefix: 24 gateway: 198.51.100.1 - network: 203.0.113.0 prefix: 24 gateway: 198.51.100.2 state: up
Execute o livro de brincadeiras:
Para se conectar como usuário
root
ao host gerenciado, entre:#
ansible-playbook -u root ~/add-static-routes.yml
Para conectar-se como usuário ao host administrado, entre:
#
ansible-playbook -u user_name --ask-become-pass ~/add-static-routes.yml
A opção
--ask-become-pass
garante que o comandoansible-playbook
solicita a senhasudo
do usuário definido no-u user_name
opção.
Se você não especificar o
-u user_name
ansible-playbook
se conecta ao host gerenciado como o usuário que está atualmente conectado ao nó de controle.
Etapas de verificação
Exibir a tabela de roteamento:
#
ip -4 route
default via 198.51.100.254 dev enp7s0 proto static metric 100 192.0.2.0/24 via 198.51.100.1 dev enp7s0 proto static metric 100 203.0.113.0/24 via 198.51.100.2 dev enp7s0 proto static metric 100 ...
Recursos adicionais
-
Para detalhes sobre os parâmetros usados em
network_connections
e para informações adicionais sobre o Sistema de Papelnetwork
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
4.8. Configuração dos recursos de descarga de etool
As placas de interface de rede podem usar o motor de descarga TCP (TOE) para descarregar o processamento de certas operações para o controlador da rede para melhorar o rendimento da rede.
Esta seção descreve como ativar os recursos de descarga.
4.8.1. Utilização de funções do sistema para definir as características do etool
Você pode usar a função do Sistema RHEL networking
para configurar ethtool
recursos de uma conexão NetworkManager.
Quando você executa uma peça que usa o Sistema Função networking
RHEL, o Sistema Função substitui um perfil de conexão existente com o mesmo nome se as configurações não coincidirem com as especificadas na peça. Portanto, sempre especifique toda a configuração do perfil de conexão de rede na peça, mesmo que, por exemplo, a configuração IP já exista. Caso contrário, o papel redefine estes valores com seus padrões.
Dependendo se já existe, o procedimento cria ou atualiza o perfil de conexão enp1s0
com as seguintes configurações:
-
Um endereço IPv4 estático -
198.51.100.20
com uma máscara de sub-rede/24
-
Um endereço IPv6 estático -
2001:db8:1::1
com uma máscara de sub-rede/64
-
Um gateway padrão IPv4 -
198.51.100.254
-
Um gateway padrão IPv6 -
2001:db8:1::fffe
-
Um servidor DNS IPv4 -
198.51.100.200
-
Um servidor DNS IPv6 -
2001:db8:1::ffbb
-
Um domínio de busca DNS -
example.com
ethtool
apresenta:- Genéricos recebem descarregar (GRO): desativado
- Segmentação genérica de descarga (GSO): habilitada
- Segmentação do TX Stream Control Transmission Protocol (SCTP): desativado
Pré-requisitos
-
Os pacotes
ansible
erhel-system-roles
estão instalados no nó de controle. -
Se você usar um usuário remoto diferente do root ao executar o playbook, este usuário tem as permissões apropriadas
sudo
no nó gerenciado.
Procedimento
Se o anfitrião no qual você deseja executar as instruções no playbook ainda não estiver inventariado, adicione o IP ou nome deste anfitrião ao arquivo
/etc/ansible/hosts
Inventário possível:node.example.com
Crie o playbook
~/configure-ethernet-device-with-ethtool-features.yml
com o seguinte conteúdo:--- - name. Configure an Ethernet connection with ethtool features hosts: node.example.com become: true tasks: - include_role: name: linux-system-roles.network vars: network_connections: - name: enp1s0 type: ethernet autoconnect: yes ip: address: - 198.51.100.20/24 - 2001:db8:1::1/64 gateway4: 198.51.100.254 gateway6: 2001:db8:1::fffe dns: - 198.51.100.200 - 2001:db8:1::ffbb dns_search: - example.com ethtool: feature: gro: "no" gso: "yes" tx_sctp_segmentation: "no" state: up
Execute o livro de brincadeiras:
Para se conectar como usuário
root
ao host gerenciado, entre:#
ansible-playbook -u root ~/configure-ethernet-device-with-ethtool-features.yml
Para conectar-se como usuário ao host administrado, entre:
#
ansible-playbook -u user_name --ask-become-pass ~/configure-ethernet-device-with-ethtool-features.yml
A opção
--ask-become-pass
garante que o comandoansible-playbook
solicita a senhasudo
do usuário definido no-u user_name
opção.
Se você não especificar o
-u user_name
ansible-playbook
se conecta ao host gerenciado como o usuário que está atualmente conectado ao nó de controle.
Recursos adicionais
-
ethtool
Para uma lista completa dos recursos e detalhes sobre os parâmetros usados emnetwork_connections
, e para informações adicionais sobre a função do sistemanetwork
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.network/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
Capítulo 5. Configuração do SElinux usando funções do sistema
5.1. Introdução ao papel do sistema SELinux
As funções do sistema RHEL são uma coleção de funções e módulos possíveis que fornecem uma interface de configuração consistente para gerenciar remotamente vários sistemas RHEL. A função do sistema SELinux permite as seguintes ações:
- Limpeza de modificações políticas locais relacionadas a booleanos SELinux, contextos de arquivos, portas e logins.
- Configurando a política SELinux booleans, contextos de arquivos, portas e logins.
- Restauração de contextos de arquivos em arquivos ou diretórios especificados.
A tabela a seguir fornece uma visão geral das variáveis de entrada disponíveis na função do sistema SELinux.
Tabela 5.1. Variáveis de função do sistema SELinux
Função variável | Descrição | Alternativa CLI |
---|---|---|
selinux_policy | Escolhe uma política de proteção de processos direcionados ou proteção de segurança multinível. |
|
selinux_state |
Troca os modos SELinux. Ver |
|
selinux_booleans |
Habilita e desabilita as booleanas SELinux. Ver |
|
selinux_fcontexts |
Adiciona ou remove um mapeamento de contexto de arquivo SELinux. Ver |
|
selinux_restore_dirs | Restaura as etiquetas SELinux na árvore do sistema de arquivos. |
|
selinux_ports |
Define as etiquetas SELinux nos portos. Ver |
|
selinux_logins |
Define os usuários para o mapeamento de usuários SELinux. Ver |
|
O exemplo de playbook /usr/share/doc/rhel-system-roles/selinux/example-selinux-playbook.yml
, instalado pelo pacote rhel-system-roles
, demonstra como definir a política direcionada no modo de aplicação. O playbook também aplica várias modificações de políticas locais e restaura contextos de arquivos no diretório /tmp/test_dir/
.
Recursos adicionais
-
Para uma referência detalhada sobre as variáveis de função do SELinux, instale o pacote
rhel-system-roles
, e veja os arquivosREADME.md
ouREADME.html
no diretório/usr/share/doc/rhel-system-roles/selinux/
. - Para mais informações sobre os papéis do Sistema RHEL, veja Introdução aos papéis do Sistema RHEL
5.2. Usando a função do sistema SELinux para aplicar as configurações do SELinux em vários sistemas
Siga os passos para preparar e aplicar um livro de exercícios possível com suas configurações SELinux verificadas.
Pré-requisitos
- Sua assinatura do Red Hat Ansible Engine está anexada ao sistema. Veja o artigo Como faço o download e instalação do Red Hat Ansible Engine para mais informações.
Procedimento
Habilite o repositório RHEL Ansible, por exemplo:
# subscription-manager repos --enable ansible-2-for-rhel-8-x86_64-rpms
Instalar Motor Possível:
# yum install ansible
Instalar as funções do sistema RHEL:
# yum install rhel-system-roles
Aplique seu playbook com um papel no sistema SELinux.
O seguinte comando aplica um exemplo de playbook, que faz parte do pacote
rhel-system-roles
. Você pode usar este playbook como um modelo:# ansible-playbook -i host1,host2,host3 /usr/share/doc/rhel-system-roles/selinux/example-selinux-playbook.yml
Recursos adicionais
-
Para mais informações, instale o pacote
rhel-system-roles
, e consulte os diretórios/usr/share/doc/rhel-system-roles/selinux/
e/usr/share/ansible/roles/rhel-system-roles.selinux/
.
Capítulo 6. Usando o papel do sistema de registro
Como administrador do sistema, você pode usar a função de sistema de registro para configurar um host RHEL como um servidor de registro para coletar registros de muitos sistemas clientes.
6.1. O papel do sistema de registro
Com o papel do sistema de registro, você pode implantar configurações de registro em hosts locais e remotos.
Para aplicar uma função de sistema de registro em um ou mais sistemas, você define a configuração de registro em um playbook. Um playbook é uma lista de uma ou mais peças. Os playbooks são legíveis por humanos, e são escritos no formato YAML. Para mais informações sobre playbooks, consulte Trabalhando com playbooks em Documentação possível.
O conjunto de sistemas que você deseja Ansible para configurar de acordo com o playbook está definido em um inventory file. Para mais informações sobre como criar e utilizar inventários, veja Como construir seu inventário na documentação do Ansible.
As soluções de registro fornecem múltiplas formas de leitura de registros e múltiplas saídas de registro.
Por exemplo, um sistema de registro pode receber as seguintes entradas:
- arquivos locais,
-
systemd/journal
, - outro sistema de registro através da rede.
Além disso, um sistema de registro pode ter as seguintes saídas:
-
os logs são armazenados nos arquivos locais no diretório
/var/log
, - os logs são enviados para a Elasticsearch,
- os logs são encaminhados para outro sistema de extração.
Com o papel do sistema de registro, você pode combinar as entradas e saídas para atender às suas necessidades. Por exemplo, você pode configurar uma solução de registro que armazena entradas de journal
em um arquivo local, enquanto as entradas lidas dos arquivos são ambas encaminhadas para outro sistema de registro e armazenadas nos arquivos de registro locais.
6.2. Parâmetros de papel do sistema de registro
Em um livro de jogo de funções do sistema de registro, você define as entradas no parâmetro logging_inputs
, as saídas no parâmetro logging_outputs
e as relações entre as entradas e saídas no parâmetro logging_flows
. O Sistema de Logging Role processa estas variáveis com opções adicionais para configurar o sistema de registro. Você também pode habilitar a criptografia.
Atualmente, o único sistema de registro disponível na função de sistema de registro é Rsyslog.
logging_inputs
- Lista de insumos para a solução de extração.-
name
- Nome único da entrada. Usado na lista de entradaslogging_flows
e uma parte do nome do arquivoconfig
gerado. type
- Tipo do elemento de entrada. O tipo especifica um tipo de tarefa que corresponde a um nome de diretório emroles/rsyslog/{tasks,vars}/inputs/
.basics
- Entradas configurando entradas do jornalsystemd
ou do soqueteunix
.-
kernel_message
- Carregarimklog
se estiver definido paratrue
. Default parafalse
. -
use_imuxsock
- Useimuxsock
ao invés deimjournal
. Por omissão parafalse
. -
ratelimit_burst
- Número máximo de mensagens que podem ser emitidas dentro deratelimit_interval
. Por omissão para20000
seuse_imuxsock
for falso. Predefinição para200
seuse_imuxsock
for verdadeiro. -
ratelimit_interval
- Intervalo para avaliaçãoratelimit_burst
. Por omissão para 600 segundos seuse_imuxsock
for falso. Default para 0 seuse_imuxsock
for verdadeiro. 0 indica que a limitação da taxa está desligada. -
persist_state_interval
- O estado do periódico persiste a cadavalue
mensagens. Por omissão para10
. Efetivo somente quandouse_imuxsock
é falso.
-
-
files
- Entradas configurando entradas a partir de arquivos locais. -
remote
- Entradas configurando as entradas do outro sistema de registro através da rede.
-
state
- Estado do arquivo de configuração.present
ouabsent
. Padrão parapresent
.
-
logging_outputs
- Lista de saídas para a solução de extração.-
files
- Saídas configurando saídas para arquivos locais. -
forwards
- Saídas configurando saídas para outro sistema de registro. -
remote_files
- Saídas configurando as saídas de outro sistema de registro em arquivos locais.
-
logging_flows
- Lista de fluxos que definem as relações entrelogging_inputs
elogging_outputs
. A variávellogging_flows
tem as seguintes chaves:-
name
- Nome único do fluxo -
inputs
- Lista de valores do nomelogging_inputs
-
outputs
- Lista de valores do nomelogging_outputs
.
-
Recursos adicionais
-
Documentação instalada com o pacote
rhel-system-roles
em/usr/share/ansible/roles/rhel-system-roles.logging/README.html
6.3. Aplicação de uma função de sistema de registro local
Siga estes passos para preparar e aplicar um livro de jogo do Red Hat Ansible Engine para configurar uma solução de registro em um conjunto de máquinas separadas. Cada máquina registrará os logs localmente.
Pré-requisitos
Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.
NotaVocê não precisa ter o Red Hat Ansible Engine instalado nos sistemas nos quais você deseja implantar a solução de registro.
Você tem o pacote
rhel-system-roles
sobre o sistema a partir do qual você deseja executar o playbook.NotaVocê não precisa ter
rsyslog
instalado, porque a função do sistema instalarsyslog
quando implantado.- Você tem um arquivo de inventário listando os sistemas nos quais você deseja configurar a solução de registro.
Procedimento
Criar um playbook que defina o papel exigido:
Criar um novo arquivo YAML e abri-lo em um editor de texto, por exemplo:
# vi logging-playbook.yml
Insira o seguinte conteúdo:
--- - name: Deploying basics input and implicit files output hosts: all roles: - linux-system-roles.logging vars: logging_inputs: - name: system_input type: basics logging_outputs: - name: files_output type: files logging_flows: - name: flow1 inputs: [system_input] outputs: [files_output]
Executar o playbook em um inventário específico:
# ansible-playbook -i inventory-file /path/to/file/logging-playbook.yml
Onde:
-
inventory-file
é o arquivo do inventário. -
logging-playbook.yml
é o livro de jogo que você usa.
-
Verificação
Teste a sintaxe do arquivo
/etc/rsyslog.conf
:# rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
Verifique se o sistema envia mensagens para o log:
Envie uma mensagem de teste:
# logger test
Veja o registro
/var/log/messages
, por exemplo:# cat /var/log/messages Aug 5 13:48:31 hostname root[6778]: test
Onde `hostname` é o nome do host do sistema do cliente. Note que o log contém o nome do usuário que digitou o comando logger, neste caso
root
.
6.4. Aplicação de uma solução de registro remoto utilizando o papel do sistema de registro
Siga estes passos para preparar e aplicar um livro de exercícios do Red Hat Ansible Engine para configurar uma solução de registro remoto. Neste playbook, um ou mais clientes pegam logs de systemd-journal
e os encaminham para um servidor remoto. O servidor recebe entradas remotas de remote_rsyslog
e remote_files
e envia os logs para arquivos locais em diretórios nomeados por nomes de hosts remotos.
Pré-requisitos
Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.
NotaVocê não precisa ter o Red Hat Ansible Engine instalado nos sistemas nos quais você deseja implantar a solução de registro.
Você tem o pacote
rhel-system-roles
sobre o sistema a partir do qual você deseja executar o playbook.NotaVocê não precisa ter
rsyslog
instalado, porque a função do sistema instalarsyslog
quando implantado.Você tem pelo menos dois sistemas:
- Pelo menos um será o servidor de registro.
- Pelo menos um será o cliente madeireiro.
Procedimento
Criar um playbook que defina o papel exigido:
Criar um novo arquivo YAML e abri-lo em um editor de texto, por exemplo:
# vi logging-playbook.yml
Insira o seguinte conteúdo no arquivo:
--- - name: Deploying remote input and remote_files output hosts: server roles: - linux-system-roles.logging vars: logging_inputs: - name: remote_udp_input type: remote udp_ports: [ 601 ] - name: remote_tcp_input type: remote tcp_ports: [ 601 ] logging_outputs: - name: remote_files_output type: remote_files logging_flows: - name: flow_0 inputs: [remote_udp_input, remote_tcp_input] outputs: [remote_files_output] - name: Deploying basics input and forwards output hosts: clients roles: - linux-system-roles.logging vars: logging_inputs: - name: basic_input type: basics logging_outputs: - name: forward_output0 type: forwards severity: info target: host1.example.com udp_port: 601 - name: forward_output1 type: forwards facility: mail target: host1.example.com tcp_port: 601 logging_flows: - name: flows0 inputs: [basic_input] outputs: [forward_output0, forward_output1] [basic_input] [forward_output0, forward_output1]
Onde
host1.example.com
é o servidor de registro.NotaVocê pode modificar os parâmetros no livro de jogo para atender às suas necessidades.
AtençãoA solução de registro funciona somente com as portas definidas na política SELinux do sistema servidor ou cliente e abertas no firewall. A política padrão do SELinux inclui as portas 601, 514, 6514, 10514, e 20514. Para utilizar uma porta diferente, modifique a política SELinux no sistema cliente e no sistema servidor. A configuração do firewall através das funções do sistema ainda não é suportada.
Crie um arquivo de inventário que lista seus servidores e clientes:
Criar um novo arquivo e abri-lo em um editor de texto, por exemplo:
# vi inventory.ini
Insira o seguinte conteúdo no arquivo do inventário:
[servers] server ansible_host=host1.example.com [clients] client ansible_host=host2.example.com
Where: *
host1.example.com
is the logging server. *host2.example.com
is the logging client.
Execute o playbook em seu inventário.
# ansible-playbook -i /path/to/file/inventory.ini /path/to/file/_logging-playbook.yml
Onde:
-
inventory.ini
é o arquivo do inventário. -
logging-playbook.yml
é o livro de jogo que você criou.
-
Etapas de verificação
Tanto no sistema cliente quanto no servidor, teste a sintaxe do arquivo
/etc/rsyslog.conf
:# rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
Verificar se o sistema cliente envia mensagens para o servidor:
No sistema do cliente, envie uma mensagem de teste:
# logger test
No sistema do servidor, veja o log
/var/log/messages
, por exemplo:# cat /var/log/messages Aug 5 13:48:31 host2.example.com root[6778]: test
Onde
host2.example.com
é o nome do host do sistema cliente. Note que o log contém o nome do usuário que digitou o comando logger, neste casoroot
.
Recursos adicionais
- Começando com os papéis do Sistema RHEL
-
Documentação instalada com o pacote
rhel-system-roles
em/usr/share/ansible/roles/rhel-system-roles.logging/README.html
- Artigo KB daRHEL System Roles
6.5. Recursos adicionais
- Começando com os papéis do Sistema RHEL
-
Documentação instalada com o pacote
rhel-system-roles
em/usr/share/ansible/roles/rhel-system-roles.logging/README.html
- Artigo KB daRHEL System Roles
Capítulo 7. Usando os papéis do sistema Clevis e Tang
7.1. Introdução às funções do sistema Clevis e Tang
As funções do sistema RHEL são uma coleção de funções e módulos possíveis que fornecem uma interface de configuração consistente para gerenciar remotamente vários sistemas RHEL.
A RHEL 8.3 introduziu funções possíveis para implantações automatizadas de soluções de decriptação baseada em políticas (PBD) usando Clevis e Tang. O pacote rhel-system-roles
contém estas funções do sistema, os exemplos relacionados, e também a documentação de referência.
A função do sistema nbde_client
permite que você implante vários clientes Clevis de forma automatizada. Note que a função nbde_client
suporta apenas as ligações Tang, e você não pode utilizá-la para ligações TPM2 no momento.
A função nbde_client
requer volumes que já estão criptografados usando LUKS. Esta função suporta ligar um volume criptografado pelo LUKS a um ou mais servidores Network-Bound (NBDE) - servidores Tang. Você pode preservar a criptografia de volume existente com uma frase-senha ou removê-la. Após remover a frase-senha, você pode desbloquear o volume somente usando NBDE. Isto é útil quando um volume é inicialmente criptografado usando uma chave temporária ou senha que você deve remover após o sistema que você fornece o sistema.
Se você fornecer tanto uma senha como um arquivo chave, a função usa primeiro o que você forneceu. Se não encontrar nenhuma delas válida, tenta recuperar uma frase-chave a partir de uma ligação existente.
PBD define uma ligação como um mapeamento de um dispositivo para um slot. Isto significa que você pode ter várias encadernações para o mesmo dispositivo. O slot padrão é o slot 1.
A função nbde_client
fornece também a variável state
. Use o valor present
para criar uma nova ligação ou atualizar uma já existente. Ao contrário de um comando clevis luks bind
, você pode usar state: present
também para sobrescrever uma encadernação existente em seu slot de dispositivo. O valor absent
remove uma encadernação especificada.
Usando a função nbde_server
, você pode implantar e gerenciar um servidor Tang como parte de uma solução automatizada de criptografia de disco. Esta função suporta as seguintes características:
- Chaves Tang rotativas
- Implantação e backup de chaves Tang
Recursos adicionais
-
Para uma referência detalhada sobre as variáveis de funções de Criptografia de Disco Ligado em Rede (NBDE), instale o pacote
rhel-system-roles
e consulte os arquivosREADME.md
eREADME.html
nos diretórios/usr/share/doc/rhel-system-roles/nbde_client/
e/usr/share/doc/rhel-system-roles/nbde_server/
. -
Por exemplo, livros-rolos do sistema, instalar o pacote
rhel-system-roles
, e ver os diretórios/usr/share/ansible/roles/rhel-system-roles.nbde_server/examples/
. - Para mais informações sobre os papéis do Sistema RHEL, veja Introdução aos papéis do Sistema RHEL
7.2. Usando a função do sistema nbde_server para a criação de múltiplos servidores Tang
Siga os passos para preparar e aplicar um livro de jogo possível contendo as configurações do seu servidor Tang.
Pré-requisitos
- Sua assinatura do Red Hat Ansible Engine está anexada ao sistema. Veja o artigo Como faço o download e instalação do Red Hat Ansible Engine para mais informações.
Procedimento
Habilite o repositório RHEL Ansible, por exemplo:
# subscription-manager repos --enable ansible-2-for-rhel-8-x86_64-rpms
Instalar Motor Possível:
# yum install ansible
Instalar as funções do sistema RHEL:
# yum install rhel-system-roles
Prepare seu playbook contendo configurações para os servidores Tang. Você pode começar do zero, ou usar um dos exemplos de playbooks do diretório
/usr/share/ansible/roles/rhel-system-roles.nbde_server/examples/
.# cp /usr/share/ansible/roles/rhel-system-roles.nbde_server/examples/simple_deploy.yml ./my-tang-playbook.yml
Edite o playbook em um editor de texto de sua escolha, por exemplo:
# vi my-tang-playbook.yml
Adicione os parâmetros necessários. O seguinte exemplo de playbook garante a implantação de seu servidor Tang e uma rotação de chaves:
--- - hosts: all vars: nbde_server_rotate_keys: yes roles: - linux-system-roles.nbde_server
Aplique o livro de jogo acabado:
# ansible-playbook -i host1,host2,host3 my-tang-playbook.yml
Recursos adicionais
-
Para mais informações, instale o pacote
rhel-system-roles
, e consulte os diretórios/usr/share/doc/rhel-system-roles/nbde_server/
eusr/share/ansible/roles/rhel-system-roles.nbde_server/
.
7.3. Usando a função do sistema nbde_client para a criação de vários clientes Clevis
Siga os passos para preparar e aplicar um livro de jogo possível contendo suas configurações Clevis-cliente.
A função do sistema nbde_client
suporta apenas as amarrações Tang. Isto significa que não é possível utilizá-lo para as amarrações TPM2 no momento.
Pré-requisitos
- Sua assinatura do Red Hat Ansible Engine está anexada ao sistema. Veja o artigo Como faço o download e instalação do Red Hat Ansible Engine para mais informações.
- Seus volumes já estão criptografados pela LUKS.
Procedimento
Habilite o repositório RHEL Ansible, por exemplo:
# subscription-manager repos --enable ansible-2-for-rhel-8-x86_64-rpms
Instalar Motor Possível:
# yum install ansible
Instalar as funções do sistema RHEL:
# yum install rhel-system-roles
Prepare seu playbook contendo configurações para os clientes Clevis. Você pode começar do zero, ou usar um dos exemplos de playbooks do diretório
/usr/share/ansible/roles/rhel-system-roles.nbde_client/examples/
.# cp /usr/share/ansible/roles/rhel-system-roles.nbde_client/examples/high_availability.yml ./my-clevis-playbook.yml
Edite o playbook em um editor de texto de sua escolha, por exemplo:
# vi my-clevis-playbook.yml
Adicione os parâmetros necessários. O seguinte exemplo de playbook configura os clientes Clevis para desbloqueio automatizado de dois volumes codificados por LUKS quando pelo menos um dos dois servidores Tang estiver disponível:
--- - hosts: all vars: nbde_client_bindings: - device: /dev/rhel/root encryption_key_src: /etc/luks/keyfile servers: - http://server1.example.com - http://server2.example.com - device: /dev/rhel/swap encryption_key_src: /etc/luks/keyfile servers: - http://server1.example.com - http://server2.example.com roles: - linux-system-roles.nbde_client
Aplique o livro de jogo acabado:
# ansible-playbook -i host1,host2,host3 my-clevis-playbook.yml
Recursos adicionais
-
Para detalhes sobre os parâmetros e informações adicionais sobre a função
nbde_client
, instale o pacoterhel-system-roles
, e consulte os diretórios/usr/share/doc/rhel-system-roles/nbde_client/
e/usr/share/ansible/roles/rhel-system-roles.nbde_client/
.
Capítulo 8. Solicitação de certificados usando os papéis do Sistema RHEL
Com o Papel do Sistema de Certificado, você pode usar o Red Hat Ansible Engine para emitir e gerenciar certificados.
Este capítulo cobre os seguintes tópicos:
8.1. O papel do sistema de certificados
Usando a função de Sistema de Certificado, você pode gerenciar a emissão e renovação de certificados TLS e SSL usando o Red Hat Ansible Engine.
A função usa certmonger
como fornecedor de certificados, e atualmente apóia a emissão e renovação de certificados autoassinados e o uso da autoridade de certificação integrada (CA) da IdM.
Você pode usar as seguintes variáveis em seu Livro de Jogadas com o Papel do Sistema de Certificado:
- certificate_wait para especificar se a tarefa deve aguardar a emissão do certificado.
- certificate_requests para representar cada certificado a ser emitido e seus parâmetros.
Recursos adicionais
-
Para detalhes sobre os parâmetros usados na variável
certificate_requests
e informações adicionais sobre a função do sistemacertificate
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
. - Para detalhes sobre as funções do Sistema RHEL e como aplicá-las, consulte Introdução às funções do Sistema RHEL.
8.2. Solicitação de um novo certificado autoassinado utilizando o Sistema de Certificado Função
Com o Papel do Sistema de Certificado, você pode usar o Red Hat Ansible Engine para emitir certificados autoassinados.
Este processo utiliza o provedor certmonger
e solicita o certificado através do comando getcert
.
Por padrão, certmonger
tenta automaticamente renovar o certificado antes que ele expire. Você pode desabilitar isto definindo o parâmetro auto_renew
no livro de jogo Ansible playbook para no
.
Pré-requisitos
Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.
NotaVocê não precisa ter o Ansible instalado nos sistemas nos quais você deseja implantar a solução
certificate
.Você tem o pacote
rhel-system-roles
instalado no sistema a partir do qual você deseja executar o playbook.Para detalhes sobre as funções do Sistema RHEL e como aplicá-las, consulte Introdução às funções do Sistema RHEL.
Procedimento
Optional: Criar um arquivo de inventário, por exemplo
inventory.file
:inventário.file $ touch
Abra seu arquivo de inventário e defina os anfitriões sobre os quais você deseja solicitar o certificado, por exemplo:
[webserver] server.idm.example.com
Criar um arquivo de playbook, por exemplo
request-certificate.yml
:-
Defina
hosts
para incluir os anfitriões sobre os quais você deseja solicitar o certificado, comowebserver
. Defina a variável
certificate_requests
para incluir o seguinte:-
Ajuste o parâmetro
name
para o nome desejado do certificado, tal comomycert
. -
Defina o parâmetro
dns
para o domínio a ser incluído no certificado, tal como*.example.com
. -
Ajustar o parâmetro
ca
paraself-sign
.
-
Ajuste o parâmetro
Definir o papel do
rhel-system-roles.certificate
emroles
.Este é o arquivo do playbook para este exemplo:
--- - hosts: webserver vars: certificate_requests: - name: mycert dns: *.example.com ca: self-sign roles: - rhel-system-roles.certificate
-
Defina
- Salvar o arquivo.
Execute o livro de brincadeiras:
$ ansible-playbook -i inventory.file request-certificate.yml
Recursos adicionais
-
Para detalhes sobre os parâmetros usados na variável
certificate_requests
e informações adicionais sobre a função do sistemacertificate
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
8.3. Solicitação de um novo certificado da IdM CA usando a função de Sistema de Certificado
Com a função de Sistema de Certificado, você pode usar o Red Hat Ansible Engine para emitir certificados enquanto usa um servidor IdM com uma autoridade de certificado integrada (CA). Portanto, você pode gerenciar eficiente e consistentemente a cadeia de confiança de certificados para múltiplos sistemas ao usar o IdM como a CA.
Este processo utiliza o provedor certmonger
e solicita o certificado através do comando getcert
.
Por padrão, certmonger
tenta automaticamente renovar o certificado antes que ele expire. Você pode desabilitar isto definindo o parâmetro auto_renew
no livro de jogo Ansible playbook para no
.
Pré-requisitos
Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.
NotaVocê não precisa ter o Ansible instalado nos sistemas nos quais você deseja implantar a solução
certificate
.Você tem o pacote
rhel-system-roles
instalado no sistema a partir do qual você deseja executar o playbook.Para detalhes sobre as funções do Sistema RHEL e como aplicá-las, consulte Introdução às funções do Sistema RHEL.
Procedimento
Optional: Criar um arquivo de inventário, por exemplo
inventory.file
:inventário.file $ touch
Abra seu arquivo de inventário e defina os anfitriões sobre os quais você deseja solicitar o certificado, por exemplo:
[webserver] server.idm.example.com
Criar um arquivo de playbook, por exemplo
request-certificate.yml
:-
Defina
hosts
para incluir os anfitriões sobre os quais você deseja solicitar o certificado, comowebserver
. Defina a variável
certificate_requests
para incluir o seguinte:-
Ajuste o parâmetro
name
para o nome desejado do certificado, tal comomycert
. -
Defina o parâmetro
dns
para o domínio a ser incluído no certificado, tal comowww.example.com
. -
Definir o parâmetro
principal
para especificar o principal Kerberos, tal comoHTTP/www.example.com@EXAMPLE.COM
. -
Ajustar o parâmetro
ca
paraipa
.
-
Ajuste o parâmetro
Definir o papel do
rhel-system-roles.certificate
emroles
.Este é o arquivo do playbook para este exemplo:
--- - hosts: webserver vars: certificate_requests: - name: mycert dns: www.example.com principal: HTTP/www.example.com@EXAMPLE.COM ca: ipa roles: - rhel-system-roles.certificate
-
Defina
- Salvar o arquivo.
Execute o livro de brincadeiras:
$ ansible-playbook -i inventory.file request-certificate.yml
Recursos adicionais
-
Para detalhes sobre os parâmetros usados na variável
certificate_requests
e informações adicionais sobre a função do sistemacertificate
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
8.4. Especificação de comandos para executar antes ou depois da emissão do certificado usando a função do Sistema de Certificado
Com a função de Sistema de Certificado, você pode usar o Red Hat Ansible Engine para executar um comando antes e depois que um certificado seja emitido ou renovado.
No exemplo a seguir, o administrador garante a interrupção do serviço httpd
antes que um certificado autoassinado para www.example.com
seja emitido ou renovado, e o reinício do serviço posteriormente.
Por padrão, certmonger
tenta automaticamente renovar o certificado antes que ele expire. Você pode desabilitar isto definindo o parâmetro auto_renew
no livro de jogo Ansible playbook para no
.
Pré-requisitos
Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.
NotaVocê não precisa ter o Ansible instalado nos sistemas nos quais você deseja implantar a solução
certificate
.Você tem o pacote
rhel-system-roles
instalado no sistema a partir do qual você deseja executar o playbook.Para detalhes sobre as funções do Sistema RHEL e como aplicá-las, consulte Introdução às funções do Sistema RHEL.
Procedimento
Optional: Criar um arquivo de inventário, por exemplo
inventory.file
:inventário.file $ touch
Abra seu arquivo de inventário e defina os anfitriões sobre os quais você deseja solicitar o certificado, por exemplo:
[webserver] server.idm.example.com
Criar um arquivo de playbook, por exemplo
request-certificate.yml
:-
Defina
hosts
para incluir os anfitriões sobre os quais você deseja solicitar o certificado, comowebserver
. Defina a variável
certificate_requests
para incluir o seguinte:-
Ajuste o parâmetro
name
para o nome desejado do certificado, tal comomycert
. -
Defina o parâmetro
dns
para o domínio a ser incluído no certificado, tal comowww.example.com
. -
Defina o parâmetro
ca
para a CA que você deseja usar para emitir o certificado, tal comoself-sign
. -
Ajuste o parâmetro
run_before
para o comando que você deseja executar antes da emissão ou renovação deste certificado, tal comosystemctl stop httpd.service
. -
Ajuste o parâmetro
run_after
para o comando que você deseja executar após a emissão ou renovação deste certificado, tal comosystemctl start httpd.service
.
-
Ajuste o parâmetro
Definir o papel do
rhel-system-roles.certificate
emroles
.Este é o arquivo do playbook para este exemplo:
--- - hosts: webserver vars: certificate_requests: - name: mycert dns: www.example.com ca: self-sign run_before: systemctl stop httpd.service run_after: systemctl start httpd.service roles: - linux-system-roles.certificate
-
Defina
- Salvar o arquivo.
Execute o livro de brincadeiras:
$ ansible-playbook -i inventory.file request-certificate.yml
Recursos adicionais
-
Para detalhes sobre os parâmetros usados na variável
certificate_requests
e informações adicionais sobre a função do sistemacertificate
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
. -
Para obter detalhes sobre o comando
ansible-playbook
, consulte a página de manualansible-playbook(1)
.
Capítulo 9. Configuração do kdump usando as funções do sistema RHEL
Para gerenciar o kdump usando o Ansible, você pode usar a função kdump
, que é uma das funções do Sistema RHEL disponível no RHEL 8.
O uso do kdump
permite especificar onde salvar o conteúdo da memória do sistema para análise posterior.
Para mais informações sobre os papéis do Sistema RHEL e como aplicá-los, consulte Introdução aos papéis do Sistema RHEL.
9.1. O papel do sistema kdump
RHEL
O sistema kdump
Papel do sistema permite definir parâmetros básicos de despejo de kernel em vários sistemas.
9.2. Parâmetros do papel Kdump
Os parâmetros utilizados para os papéis do Sistema RHEL kdump
são:
Variável de Papel | Descrição |
---|---|
kdump_path |
O caminho para o qual |
Recursos adicionais
- Veja a página de manual makedump(8).
-
Para detalhes sobre os parâmetros usados em
kdump
e informações adicionais sobre o Sistema de Papelkdump
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.tlog/README.md
.
9.3. Configuração do kdump usando as funções do sistema RHEL
Você pode definir parâmetros básicos do kernel dump em vários sistemas usando o sistema kdump
Função do sistema executando um Ansible playbook.
A função kdump
substitui inteiramente a configuração kdump dos hosts gerenciados, substituindo o arquivo /etc/kdump.conf
. Além disso, se a função kdump for aplicada, todas as configurações kdump anteriores também são substituídas, mesmo que não sejam especificadas pelas variáveis da função, substituindo o arquivo /etc/sysconfig/kdump
.
Pré-requisitos
Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.
NotaVocê não precisa ter a Plataforma de Automação Possível da Red Hat instalada nos sistemas nos quais você deseja implantar a solução
kdump
.-
Você tem o pacote
rhel-system-roles
instalado no sistema a partir do qual você deseja executar o playbook. -
Você tem um arquivo de inventário que lista os sistemas nos quais você quer implantar
kdump
.
Procedimento
Criar um novo
playbook.yml
arquivo com o seguinte conteúdo:--- - hosts: kdump-test vars: kdump_path: /var/crash roles: - rhel-system-roles.kdump
Opcional: Verificar a sintaxe do playbook.
# ansible-playbook --syntax-check playbook.yml
Execute o playbook em seu arquivo de inventário:
# ansible-playbook -i inventory_file /path/to/file/playbook.yml
Recursos adicionais
- Para uma referência detalhada das variáveis da função kdump, consulte os arquivos README.md ou README.html no diretório /usr/share/doc/rhel-system-roles/kdump.
- Ver Seção 1.3, “Aplicando um papel”.
-
Documentação instalada com o pacote
rhel-system-roles
/usr/share/ansible/roles/rhel-system-roles.kdump/README.html
Capítulo 10. Gerenciamento do armazenamento local usando as funções do sistema RHEL
Para gerenciar LVM e sistemas de arquivos locais (FS) usando o Ansible, você pode usar a função storage
, que é uma das funções do Sistema RHEL disponível no RHEL 8.
O uso da função storage
permite automatizar a administração de sistemas de arquivos em discos e volumes lógicos em múltiplas máquinas e em todas as versões da RHEL, começando com a RHEL 7.7.
Para mais informações sobre os papéis do Sistema RHEL e como aplicá-los, consulte Introdução aos papéis do Sistema RHEL.
10.1. Introdução à função de armazenamento
A função storage
pode administrar:
- Sistemas de arquivos em discos que não foram particionados
- Grupos completos de volumes LVM incluindo seus volumes lógicos e sistemas de arquivo
Com o papel storage
, você pode realizar as seguintes tarefas:
- Criar um sistema de arquivo
- Remover um sistema de arquivo
- Montar um sistema de arquivo
- Desmontar um sistema de arquivo
- Criar grupos de volume LVM
- Remover grupos de volume LVM
- Criar volumes lógicos
- Remover volumes lógicos
- Criar volumes RAID
- Remover volumes RAID
- Criar pools LVM com RAID
- Remover as piscinas LVM com RAID
10.2. Parâmetros que identificam um dispositivo de armazenamento no papel do sistema de armazenamento
Sua configuração de funções storage
afeta apenas os sistemas de arquivos, volumes e pools que você lista nas seguintes variáveis.
storage_volumes
Lista de sistemas de arquivos em todos os discos não particionados a serem gerenciados.
Atualmente, as partições não têm suporte.
storage_pools
Lista de piscinas a serem administradas.
Atualmente, o único tipo de piscina suportada é a LVM. Com LVM, os pools representam grupos de volume (VGs). Sob cada pool há uma lista de volumes a serem gerenciados pela função. Com o LVM, cada volume corresponde a um volume lógico (LV) com um sistema de arquivo.
10.3. Exemplo Livro de reprodução possível para criar um sistema de arquivo XFS em um dispositivo de bloco
Esta seção fornece um exemplo de um livro de brincadeiras possível. Este playbook aplica o papel storage
para criar um sistema de arquivos XFS em um dispositivo de bloco usando os parâmetros padrão.
A função storage
pode criar um sistema de arquivo somente em um disco não particionado, inteiro ou em um volume lógico (LV). Ele não pode criar o sistema de arquivo em uma partição.
Exemplo 10.1. Um playbook que cria XFS em /dev/sdb
--- - hosts: all vars: storage_volumes: - name: barefs type: disk disks: - sdb fs_type: xfs roles: - rhel-system-roles.storage
-
O nome do volume (
barefs
no exemplo) é atualmente arbitrária. A funçãostorage
identifica o volume pelo dispositivo de disco listado sob o atributodisks:
. -
Você pode omitir a linha
fs_type: xfs
porque XFS é o sistema de arquivo padrão no RHEL 8. Para criar o sistema de arquivo em um LV, forneça a configuração LVM sob o atributo
disks:
, incluindo o grupo de volume envolvente. Para detalhes, veja Exemplo Livro de exemplo para gerenciar volumes lógicos.Não forneça o caminho para o dispositivo LV.
Recursos adicionais
-
Para detalhes sobre os parâmetros utilizados na função do sistema
storage
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.storage/README.md
.
10.4. Exemplo Livro de reprodução possível para montar persistentemente um sistema de arquivo
Esta seção fornece um exemplo de um livro de brincadeiras possível. Este playbook aplica o papel storage
para montar imediata e persistentemente um sistema de arquivos XFS.
Exemplo 10.2. Um playbook que monta um sistema de arquivo em /dev/sdb para /mnt/dados
--- - hosts: all vars: storage_volumes: - name: barefs type: disk disks: - sdb fs_type: xfs mount_point: /mnt/data roles: - rhel-system-roles.storage
-
Este playbook adiciona o sistema de arquivo ao arquivo
/etc/fstab
, e monta o sistema de arquivo imediatamente. -
Se o sistema de arquivo no dispositivo
/dev/sdb
ou o diretório de pontos de montagem não existir, o playbook os cria.
Recursos adicionais
-
Para detalhes sobre os parâmetros utilizados na função do sistema
storage
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.storage/README.md
.
10.5. Exemplo Livro de exercícios possível para gerenciar volumes lógicos
Esta seção fornece um exemplo de um livro de brincadeiras possível. Este playbook aplica o papel storage
para criar um volume lógico LVM em um grupo de volumes.
Exemplo 10.3. Um playbook que cria um volume lógico mylv no grupo de volume myvg
- hosts: all vars: storage_pools: - name: myvg disks: - sda - sdb - sdc volumes: - name: mylv size: 2G fs_type: ext4 mount_point: /mnt roles: - rhel-system-roles.storage
O grupo de volume
myvg
é composto pelos seguintes discos:-
/dev/sda
-
/dev/sdb
-
/dev/sdc
-
-
Se o grupo de volume
myvg
já existe, o playbook adiciona o volume lógico ao grupo de volume. -
Se o grupo de volume
myvg
não existe, o playbook o cria. -
O playbook cria um sistema de arquivo Ext4 no volume lógico
mylv
e monta persistentemente o sistema de arquivo em/mnt
.
Recursos adicionais
-
Para detalhes sobre os parâmetros utilizados na função do sistema
storage
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.storage/README.md
.
10.6. Exemplo Livro de reprodução possível para permitir o descarte em bloco online
Esta seção fornece um exemplo de um livro de brincadeiras possível. Este playbook aplica o papel storage
para montar um sistema de arquivo XFS com o descarte de blocos on-line habilitado.
Exemplo 10.4. Um playbook que permite o descarte de blocos online em /mnt/dados/
--- - hosts: all vars: storage_volumes: - name: barefs type: disk disks: - sdb fs_type: xfs mount_point: /mnt/data mount_options: discard roles: - rhel-system-roles.storage
Recursos adicionais
- Este playbook também realiza todas as operações do exemplo de montagem persistente descrito em Exemplo Um playbook possível para montar persistentemente um sistema de arquivo.
-
Para detalhes sobre os parâmetros utilizados na função do sistema
storage
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.storage/README.md
.
10.7. Exemplo Livro de reprodução possível para criar e montar um sistema de arquivo Ext4
Esta seção fornece um exemplo de um livro de brincadeiras possível. Este playbook aplica o papel storage
para criar e montar um sistema de arquivos Ext4.
Exemplo 10.5. Um playbook que cria Ext4 em /dev/sdb e o monta em /mnt/dados
--- - hosts: all vars: storage_volumes: - name: barefs type: disk disks: - sdb fs_type: ext4 fs_label: label-name mount_point: /mnt/data roles: - rhel-system-roles.storage
-
O playbook cria o sistema de arquivos no disco
/dev/sdb
. -
O playbook monta persistentemente o sistema de arquivo no
/mnt/data
diretório. -
A etiqueta do sistema de arquivo é
label-name
.
Recursos adicionais
-
Para detalhes sobre os parâmetros utilizados na função do sistema
storage
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.storage/README.md
.
10.8. Exemplo Livro de reprodução possível para criar e montar um sistema de arquivo ext3
Esta seção fornece um exemplo de um livro de brincadeiras possível. Este playbook aplica o papel storage
para criar e montar um sistema de arquivos Ext3.
Exemplo 10.6. Um playbook que cria Ext3 em /dev/sdb e o monta em /mnt/dados
--- - hosts: all vars: storage_volumes: - name: barefs type: disk disks: - sdb fs_type: ext3 fs_label: label-name mount_point: /mnt/data roles: - rhel-system-roles.storage
-
O playbook cria o sistema de arquivos no disco
/dev/sdb
. -
O playbook monta persistentemente o sistema de arquivo no
/mnt/data
diretório. -
A etiqueta do sistema de arquivo é
label-name
.
Recursos adicionais
-
Para detalhes sobre os parâmetros utilizados na função do sistema
storage
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.storage/README.md
.
10.9. Configuração de um volume RAID utilizando a função do sistema de armazenamento
Com o Sistema Função storage
, você pode configurar um volume RAID na RHEL usando a Plataforma de Automação Possível Red Hat Ansible Automation. Nesta seção, você aprenderá como configurar um livro de jogo possível com os parâmetros disponíveis para configurar um volume RAID de acordo com suas necessidades.
Pré-requisitos
Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.
NotaVocê não precisa ter a Plataforma de Automação Possível da Red Hat instalada nos sistemas nos quais você deseja implantar a solução
storage
.-
Você tem o pacote
rhel-system-roles
instalado no sistema a partir do qual você deseja executar o playbook. -
Você tem um arquivo de inventário detalhando os sistemas nos quais você deseja implantar um volume RAID usando o sistema
storage
Função do sistema.
Procedimento
Criar um novo
playbook.yml
arquivo com o seguinte conteúdo:- hosts: all vars: storage_safe_mode: false storage_volumes: - name: data type: raid disks: [sdd, sde, sdf, sdg] raid_level: raid0 raid_chunk_size: 32 KiB mount_point: /mnt/data state: present roles: - name: rhel-system-roles.storage
AtençãoOs nomes dos dispositivos podem mudar em certas circunstâncias; por exemplo, quando você adiciona um novo disco a um sistema. Portanto, para evitar a perda de dados, não recomendamos o uso de nomes de disco específicos no livro de reprodução.
Opcional. Verificar a sintaxe do playbook.
# ansible-playbook --syntax-check playbook.yml
Execute o playbook em seu arquivo de inventário:
# ansible-playbook -i inventory.file /path/to/file/playbook.yml
Recursos adicionais
- Para mais informações sobre o RAID, consulte Gerenciando RAID.
-
Para detalhes sobre os parâmetros utilizados na função do sistema de armazenamento, consulte o arquivo
/usr/share/ansible/roles/rhel-system-roles.storage/README.md
.
10.10. Configuração de um pool LVM com RAID utilizando a função de sistema de armazenamento
Com o Sistema Função storage
, você pode configurar um pool LVM com RAID na RHEL usando a Plataforma de Automação Possível da Red Hat. Nesta seção você aprenderá como configurar um playbook Ansible com os parâmetros disponíveis para configurar um pool LVM com RAID.
Pré-requisitos
Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.
NotaVocê não precisa ter a Plataforma de Automação Possível da Red Hat instalada nos sistemas nos quais você deseja implantar a solução
storage
.-
Você tem o pacote
rhel-system-roles
instalado no sistema a partir do qual você deseja executar o playbook. -
Você tem um arquivo de inventário detalhando os sistemas nos quais você deseja configurar um pool LVM com RAID usando o sistema
storage
Função do sistema.
Procedimento
Criar um novo
playbook.yml
arquivo com o seguinte conteúdo:- hosts: all vars: storage_safe_mode: false storage_pools: - name: my_pool type: lvm disks: [sdh, sdi] raid_level: raid1 volumes: - name: my_pool size: "1 GiB" mount_point: "/mnt/app/shared" fs_type: xfs state: present roles: - name: rhel-system-roles.storage
NotaPara criar um pool LVM com RAID, você deve especificar o tipo de RAID usando o parâmetro
raid_level
.Opcional. Verificar a sintaxe do playbook.
# ansible-playbook --syntax-check playbook.yml
Execute o playbook em seu arquivo de inventário:
# ansible-playbook -i inventory.file /path/to/file/playbook.yml
Recursos adicionais
- Para mais informações sobre o RAID, consulte Gerenciando RAID.
-
Para detalhes sobre os parâmetros utilizados na função do sistema de armazenamento, consulte o arquivo
/usr/share/ansible/roles/rhel-system-roles.storage/README.md
.
10.11. Criação de um volume codificado LUKS usando a função de armazenamento
Você pode usar o papel storage
para criar e configurar um volume criptografado com LUKS, executando um livro de brincadeiras Ansible playbook.
Pré-requisitos
Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.
NotaVocê não precisa ter a Plataforma de Automação Possível da Red Hat instalada nos sistemas nos quais você deseja criar o volume.
-
Você tem o pacote
rhel-system-roles
instalado no controlador Ansible. - Você tem um arquivo de inventário detalhando os sistemas nos quais você deseja implantar um volume codificado LUKS usando a função de sistema de armazenamento.
Procedimento
Criar um novo
playbook.yml
arquivo com o seguinte conteúdo:- hosts: all vars: storage_volumes: - name: barefs type: disk disks: - sdb fs_type: xfs fs_label: label-name mount_point: /mnt/data encryption: true encryption_password: your-password roles: - rhel-system-roles.storage
Opcional. Verificar a sintaxe do playbook:
# ansible-playbook --syntax-check playbook.yml
Execute o playbook em seu arquivo de inventário:
# ansible-playbook -i inventory.file /path/to/file/playbook.yml
Recursos adicionais
- Para mais informações sobre a LUKS, veja 17. Criptografando dispositivos de blocos usando LUKS...
-
Para detalhes sobre os parâmetros utilizados na função do sistema
storage
, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.storage/README.md
.
Recursos adicionais
Para mais informações, instale o pacote
rhel-system-roles
e veja os seguintes diretórios:-
/usr/share/doc/rhel-system-roles/storage/
-
/usr/share/ansible/roles/rhel-system-roles.storage/
-
Capítulo 11. Configuração de sincronização de tempo usando as funções do sistema RHEL
Com a Função do Sistema RHEL timesync
, você pode gerenciar a sincronização de tempo em múltiplas máquinas alvo na RHEL usando a Plataforma de Automação Possível da Red Hat.
11.1. O papel do Sistema Timesync
Você pode gerenciar a sincronização de tempo em várias máquinas alvo usando a função timesync
RHEL System Role.
A função timesync
instala e configura uma implementação NTP ou PTP para operar como um cliente NTP ou réplica PTP a fim de sincronizar o relógio do sistema com servidores NTP ou grandmasters nos domínios PTP.
Note que o uso do papel timesync
também facilita a migração para o chrony, porque você pode usar o mesmo playbook em todas as versões do Red Hat Enterprise Linux começando com o RHEL 6, independentemente do sistema usar ntp
ou chrony
para implementar o protocolo NTP.
11.2. Aplicando o papel do sistema timesync para um único pool de servidores
O exemplo a seguir mostra como aplicar o papel timesync
em uma situação com apenas um pool de servidores.
A função timesync
substitui a configuração do serviço de provedor dado ou detectado no host administrado. As configurações anteriores são perdidas, mesmo que não estejam especificadas nas variáveis de função. A única configuração preservada é a escolha do provedor se a variável timesync_ntp_provider
não estiver definida.
Pré-requisitos
Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.
NotaVocê não precisa ter a Plataforma de Automação Possível da Red Hat instalada nos sistemas nos quais você deseja implantar a solução
timesync
.-
Você tem o pacote
rhel-system-roles
instalado no sistema a partir do qual você deseja executar o playbook. -
Você tem um arquivo de inventário que lista os sistemas nos quais você deseja implantar
timesync
Função do Sistema.
Procedimento
Criar um novo
playbook.yml
arquivo com o seguinte conteúdo:--- - hosts: timesync-test vars: timesync_ntp_servers: - hostname: 2.rhel.pool.ntp.org pool: yes iburst: yes roles: - rhel-system-roles.timesync
Opcional: Verificar a sintaxe do playbook.
# ansible-playbook --syntax-check playbook.yml
Execute o playbook em seu arquivo de inventário:
# ansible-playbook -i inventory_file /path/to/file/playbook.yml
11.3. Timesync
Variáveis dos papéis do sistema
Você pode passar a seguinte variável para a função timesync
:
-
timesync_ntp_servers
:
Configurações das variáveis de papel | Descrição |
---|---|
hostname: host.example.com | Nome ou endereço do servidor |
minpoll number | Intervalo mínimo de sondagem. Default: 6 |
maxpoll number | Intervalo máximo de sondagem. Default: 10 |
iburst: sim | Bandeira que permite uma rápida sincronização inicial. Default: não |
piscina: sim | Bandeira indicando que cada endereço resolvido do hostname é um servidor NTP separado. Default: não |
Recursos adicionais
-
Para uma referência detalhada sobre as variáveis de função timesync, instale o pacote rhel-system-roles, e veja os arquivos README.md ou README.html no diretório
/usr/share/doc/rhel-system-roles/timesync
.
Capítulo 12. Monitoramento do desempenho usando os papéis do Sistema RHEL
12.1. Introdução ao sistema métrico Papel do sistema
As funções do sistema RHEL são um conjunto de funções e módulos possíveis que fornecem uma interface de configuração consistente para gerenciar remotamente vários sistemas RHEL. A função do sistema de métricas configura serviços de análise de desempenho para o sistema local e, opcionalmente, inclui uma lista de sistemas remotos a serem monitorados pelo sistema local. O sistema de métricas System Role permite que você use pcp
para monitorar o desempenho de seus sistemas sem ter que configurar pcp
separadamente, já que a configuração e implantação de pcp
é tratada pelo playbook.
Tabela 12.1. Variáveis de papel do sistema métrico
Função variável | Descrição | Exemplo de uso |
---|---|---|
métricas_monitoradas_hosts |
Lista de hospedeiros remotos a serem analisados pelo hospedeiro alvo. Estes anfitriões terão métricas registradas no anfitrião alvo, portanto, certifique-se de que existe espaço suficiente em disco abaixo de |
|
dias_de_retenção_métrica | Configura o número de dias para retenção de dados de desempenho antes da exclusão. |
|
metrics_graph_service |
Uma bandeira booleana que permite a instalação do host com serviços de visualização de dados de desempenho via |
|
métrica_consulta_serviço |
Uma bandeira booleana que permite configurar o host com serviços de consulta de séries temporais para consulta de métricas registradas |
|
metrics_provider |
Especifica qual métrica coletor a ser usada para fornecer métricas. Atualmente, |
|
Recursos adicionais
-
para detalhes sobre os parâmetros usados em
metrics_connections
e informações adicionais sobre a função do sistema métrico, veja o arquivo/usr/share/ansible/roles/rhel-system-roles.metrics/README.md
.
12.2. Usando o sistema métrico Função do sistema para monitorar seu sistema local com visualização
Este procedimento descreve como usar a métrica RHEL System Role para monitorar seu sistema local enquanto simultaneamente fornece a visualização de dados via grafana
.
Pré-requisitos
- Você tem o Red Hat Ansible Engine instalado na máquina que você deseja monitorar.
-
Você tem o pacote
rhel-system-roles
instalado na máquina que você deseja monitorar.
Procedimento
Configurar
localhost
no site/etc/ansible/hosts
Inventário possível, adicionando o seguinte conteúdo ao inventário:localhost ansible_connection=local
Crie um livro de jogo possível com o seguinte conteúdo:
--- - hosts: localhost vars: metrics_graph_service: yes roles: - rhel-system-roles.metrics
Execute o livro de jogo Ansible playbook:
# ansible-playbook name_of_your_playbook.yml
NotaComo o
metrics_graph_service
boolean está configurado para value="yes",grafana
é automaticamente instalado e provisionado compcp
adicionado como fonte de dados.-
Para visualizar a visualização das métricas que estão sendo coletadas em sua máquina, acesse a interface web
grafana
como descrito em Accessing the Grafana web UI.
12.3. Usando o sistema métrico Função do sistema para configurar uma frota de sistemas individuais para monitorar a si mesmos
Este procedimento descreve como usar o sistema métrico Papel do sistema para montar uma frota de máquinas para monitorar a si mesmos.
Pré-requisitos
- Você tem o Red Hat Ansible Engine instalado na máquina que você deseja usar para executar o playbook.
-
Você tem o pacote
rhel-system-roles
instalado na máquina que você deseja usar para executar o playbook.
Procedimento
Adicione o nome ou IP das máquinas que você deseja monitorar através do playbook ao arquivo
/etc/ansible/hosts
. Um possível arquivo de inventário com um nome de grupo identificador entre parênteses:[remotes] webserver.example.com database.example.com
Crie um livro de jogo possível com o seguinte conteúdo:
--- - hosts: remotes vars: metrics_retention_days: 0 roles: - rhel-system-roles.metrics
Execute o livro de jogo Ansible playbook:
# ansible-playbook name_of_your_playbook.yml
12.4. Usando o sistema métrico Papel do sistema para monitorar uma frota de máquinas de forma centralizada através de sua máquina local
Este procedimento descreve como usar o sistema de métricas Função do sistema para configurar sua máquina local para monitorar centralmente uma frota de máquinas, ao mesmo tempo em que fornece a visualização dos dados via grafana
e consulta dos dados via redis
.
Pré-requisitos
- Você tem o Red Hat Ansible Engine instalado na máquina que você deseja usar para executar o playbook.
-
Você tem o pacote
rhel-system-roles
instalado na máquina que você deseja usar para executar o playbook.
Procedimento
Crie um livro de jogo possível com o seguinte conteúdo:
--- - hosts: localhost vars: metrics_graph_service: yes metrics_query_service: yes metrics_retention_days: 10 metrics_monitored_hosts: ["database.example.com", "webserver.example.com"] roles: - rhel-system-roles.metrics
Execute o livro de jogo Ansible playbook:
# ansible-playbook name_of_your_playbook.yml
NotaComo as booleans
metrics_graph_service
emetrics_query_service
estão configuradas para value="yes",grafana
é automaticamente instalado e provisionado compcp
adicionado como fonte de dados com o registro de dadospcp
indexado emredis
, permitindo que a linguagem de consultapcp
seja usada para consulta complexa dos dados.-
Para visualizar a representação gráfica das métricas que estão sendo coletadas centralmente por sua máquina e para consultar os dados, acesse a interface web
grafana
conforme descrito em Accessing the Grafana web UI.
Capítulo 13. Configuração de um sistema para gravação de sessões usando o tlog RHEL Roles System
Com a Função do Sistema RHEL tlog
, você pode configurar um sistema para gravação de sessão terminal na RHEL usando a Plataforma de Automação Possível da Red Hat.
13.1. O papel do sistema tlog
Você pode configurar um sistema RHEL para gravação de sessão terminal na RHEL usando o sistema tlog
Função do sistema RHEL. O pacote tlog
e seu leitor de sessões do console web associado oferecem a você a possibilidade de gravar e reproduzir sessões de terminal de usuário.
Você pode configurar a gravação para ser feita por usuário ou grupo de usuários através do serviço SSSD
. Todas as entradas e saídas dos terminais são capturadas e armazenadas em um formato de texto no diário do sistema.
Recursos adicionais
- Para mais detalhes sobre as sessões de gravação na RHEL, veja Sessões de Gravação
13.2. Componentes e parâmetros do sistema tlog Funções do sistema
A solução de gravação da sessão é composta dos seguintes componentes:
- O utilitário tlog
- Daemon System Security Services (SSSD)
- Opcional: A interface do console web
Os parâmetros utilizados para o tlog RHEL System Roles são:
Variável de Papel | Descrição |
---|---|
tlog_use_sssd (padrão: sim) | Configurar a gravação da sessão com SSSD, a forma preferida de gerenciar usuários ou grupos gravados |
tlog_scope_sssd (default: nenhum) | Configurar o escopo de gravação SSSD - todos / alguns / nenhum |
tlog_users_sssd (padrão: []) | Lista de usuários YAML a serem registrados |
tlog_groups_sssd (padrão: []) | YAML lista de grupos a serem registrados |
-
Para detalhes sobre os parâmetros usados em
tlog
e informações adicionais sobre o papel do sistema tlog, consulte o arquivo/usr/share/ansible/roles/rhel-system-roles.tlog/README.md
.
13.3. Implementando o sistema tlog RHEL Função
Siga estas etapas para preparar e aplicar um livro de exercícios possível para configurar um sistema RHEL para registrar os dados de registro no diário do sistema.
Pré-requisitos
-
Você definiu chaves SSH para acesso do nó de controle ao sistema alvo onde o sistema
tlog
Função do sistema será configurado. - Você tem um nó de controle, que é um sistema a partir do qual o Motor Possível configura os outros sistemas.
- Você tem o Red Hat Ansible Engine instalado no nó de controle, a partir do qual você quer executar o playbook.
-
Você tem o pacote
rhel-system-roles
instalado no nó de controle a partir do qual você deseja executar o playbook. -
Você tem pelo menos um sistema que você deseja configurar o Sistema de Papel
tlog
. Você não precisa ter a Plataforma de Automação Possível da Red Hat instalada nos sistemas nos quais você deseja implantar a soluçãotlog
.
Procedimento
Criar um novo
playbook.yml
arquivo com o seguinte conteúdo:--- - name: Deploy session recording hosts: all vars: tlog_scope_sssd: some tlog_users_sssd: - recordeduser roles: - rhel-system-roles.tlog
Onde,
tlog_scope_sssd
:-
some
especifica que você deseja registrar apenas certos usuários e grupos, nãoall
ounone
.
-
tlog_users_sssd
:-
recordeduser
especifica o usuário de quem você deseja gravar uma sessão. Note que isto não adiciona o usuário para você. Você deve definir o usuário por si mesmo.
-
Opcionalmente, verificar a sintaxe do playbook.
# ansible-playbook --syntax-check playbook.yml
Execute o playbook em seu arquivo de inventário:
# ansible-playbook -i IP_Address /path/to/file/playbook.yml -v
Como resultado, o playbook instala o papel tlog
no sistema que você especificou. Ele também cria um arquivo drop de configuração SSSD que pode ser usado pelos usuários e grupos que você definir. O SSSD analisa e lê estes usuários e grupos para sobrepor a sessão tlog
como o usuário shell. Além disso, se o pacote cockpit
estiver instalado no sistema, o playbook também instala o pacote cockpit-session-recording
, que é um módulo Cockpit
que permite visualizar e reproduzir gravações na interface do console web.
Etapas de verificação
Para verificar se o arquivo de configuração SSSD é criado no sistema, execute os seguintes passos:
Navegue até a pasta onde o arquivo de configuração SSSD é criado:
# cd /etc/sssd/conf.d
Verifique o conteúdo do arquivo:
# cat /etc/sssd/conf.d/sssd-session-recording.conf
Você pode ver que o arquivo contém os parâmetros que você definiu no playbook.
13.4. Gravação de uma sessão usando o papel do sistema tlog implantado no CLI
Uma vez implantado o sistema tlog
Função do sistema no sistema que você especificou, você é capaz de gravar uma sessão terminal de usuário usando a interface de linha de comando (CLI).
Pré-requisitos
-
Você implantou o sistema
tlog
Papel do sistema no sistema alvo. -
O arquivo de configuração SSSD foi criado no arquivo
/etc/sssd/conf.d
.
Procedimento
Criar um usuário e atribuir uma senha para este usuário:
# useradd recordeduser # passwd recordeduser
Relogie-se ao sistema como o usuário que você acabou de criar:
# ssh recordeduser@localhost
- Digite "sim" quando o sistema solicitar que você digite sim ou não para autenticar.
Insira a senha recordeduser’s.
O sistema solicita uma mensagem para informar que sua sessão está sendo gravada.
ATENÇÃO! Sua sessão está sendo gravada!
Uma vez terminada a gravação da sessão, digite:
# saída
O sistema se desconecta do usuário e fecha a conexão com o anfitrião local.
Como resultado, a sessão do usuário é gravada, armazenada e você pode reproduzi-la usando um diário.
Etapas de verificação
Para ver sua sessão gravada na revista, siga os seguintes passos:
Execute o comando abaixo:
# journalctl -o verbose -r
-
Pesquise o campo
MESSAGE
do registro de diário registradotlog-rec
.
13.5. Assistir a uma sessão gravada utilizando o CLI
Você pode reproduzir uma gravação de sessão do usuário a partir de um diário usando a interface de linha de comando (CLI).
Pré-requisitos
- Você gravou uma sessão de usuário. Veja Seção 13.4, “Gravação de uma sessão usando o papel do sistema tlog implantado no CLI”
Procedimento
No terminal CLI, reproduza a gravação da sessão do usuário:
# journalctl -o verbose -r
Procure a gravação em
tlog
:$ /tlog-rec
Você pode ver detalhes tais como:
- O nome de usuário para a gravação da sessão do usuário
-
O campo
out_txt
, um codificador de saída bruta da sessão gravada - O número identificador TLOG_REC=ID_number
- Copie o número identificador TLOG_REC=ID_number.
Reproduzir a gravação usando o número identificador TLOG_REC=ID_number.
# tlog-play -r journal -M TLOG_REC=ID_number
Como resultado, você pode ver a saída do terminal de gravação da sessão do usuário sendo reproduzida.