Existem várias maneiras de gerenciar o endereço IP e o nome do seu computador Ubuntu. Os administradores do sistema têm à sua disposição as ferramentas nmcli, netplan, hostname e hostnamectl. Embora essas ferramentas façam um bom trabalho por si mesmas, como você pode incluir essas ferramentas para aprimorar seu jogo de automação?
Você pode criar um script Bash que lidará com a configuração para você. Neste artigo, você aprenderá como definir um novo nome de host e configurar informações de endereço IP, tudo com um script Bash que aceita entradas.
Cada exemplo irá se basear no outro. No final do artigo, você terá o conhecimento necessário para construir um script de configuração totalmente funcional em Bash para uso em um host Ubuntu novo ou existente.
Pré-requisitos
Você não precisa ser um especialista em scripts de shell Bash para seguir este tutorial, mas certifique-se de ter os seguintes requisitos.
- A host running on Ubuntu. This tutorial uses Ubuntu 22.04 LTS.
- Privilégios de root no host Ubuntu.
- A text editor, such as
vim
,nano
, or VSCode.
Definindo o Nome do Host com hostnamectl
Cada host deve ter um nome único. Usando o comando hostnamectl você pode consultar ou alterar o nome do host. Neste caso, a sintaxe é como mostrado abaixo para mudar seu nome de host atual para o que você desejar.
Executando o comando hostnamectl com o parâmetro comum de set-hostname seguido por um valor de string entre aspas duplas como o novo nome do host. Se você estivesse executando este comando manualmente, ele deveria funcionar sem problemas.
Mas e se você quisesse colocar isso em um script que aceita entrada do usuário? Comece usando o comando read, seguido pelo parâmetro -p, que significa prompt, e uma string para instruir o usuário sobre o que inserir para este prompt. Em seguida, você salva a entrada em uma nova variável, chamada NOVO_NOME_DO_HOST.
Depois que o nome do host estiver armazenado na variável NOVO_NOME_DO_HOST, você pode fornecer a variável para o comando hostnamectl como no exemplo abaixo.
E é isso! Combinar esses dois comandos em uma linha permite que funcionem em um script! Mas, você tem uma tarefa adicional: configurar as opções de rede.
Configurando as Informações do Endereço IP com netplan
O comando netplan é o método de facto para gerenciar as informações do endereço IP de uma interface de rede para hosts Ubuntu modernos. A ferramenta netplan abstrai as configurações de rede de vários back-ends usando arquivos de configuração YAML.
A ferramenta netplan lê esses arquivos de configuração durante a inicialização do sistema e os aplica às interface(s) de rede de destino. Por que isso é importante, você pode perguntar?
Ter a configuração da sua rede em YAML permite que você comece a salvar ou fazer backup da sua configuração em um repositório Git. E como o Git oferece capacidades de rastreamento de alterações, você pode usar o mesmo arquivo de configuração sem ter que recriá-lo para futuros implantes usando pipelines de CI/CD. Você sabe, DevOps!
Antes de adicionar linhas a um arquivo de configuração, você deve criar o arquivo de configuração usando o comando touch.
O comando acima irá colocar o novo arquivo de configuração no seu diretório home. A partir daqui, você irá executar o comando echo para ecoar o que você digita e injetar isso no arquivo de configuração linha por linha usando a redireção de entrada para STDOUT > (adicionar) e >> (anexar).
Nota: Use dois espaços duplos e não tabulações para indentação em YAML.
Com cada comando echo, você constrói a configuração YAML usando espaçamento apropriado redirecionando a entrada usando STDOUT. Alternativamente, você poderia construir este arquivo manualmente usando um editor de texto. Mas, você não precisa construir o arquivo manualmente.
Em vez disso, solicite ao usuário inserir as informações de endereço IP que você precisa usando o mesmo comando read
.
Dica: Uma maneira de listar todas as informações da interface de rede no Ubuntu é executar o comando ip address.
Há muitas outras propriedades que você pode definir, as quais este tutorial não aborda em detalhes. Se desejar ver propriedades comuns adicionais, certifique-se de ler as páginas do manual do netplan.
Com as opções de rede concluídas, é hora de construir um único script!
Colocando Tudo Junto em um Script Bash
Agora, você irá combinar tudo em um único script Bash com o que aprendeu nas seções anteriores. Abra o seu editor de escolha, cole o código abaixo e salve o arquivo como ~/host_deploy.sh
.
Para executar o script, execute o comando abaixo para invocar o script com bash
no seu terminal.
O script solicita que você insira um novo nome de host e informações de endereço IP e lembra que você precisa reiniciar o host para que as alterações tenham efeito.
Agora que você tem um script funcional no diretório do usuário, você poderia criar uma imagem dourada para reutilizar ou compartilhar com técnicos e aqueles que rotineiramente realizam esta tarefa.
Conclusão
Parabéns! Você chegou ao final do artigo e construiu um script Bash totalmente funcional que você pode usar repetidamente.
Você também pode tentar usar este script com o Ansible e responder às perguntas usando um play do Ansible. As tarefas neste tutorial são apenas uma pequena amostra de itens de configuração inicial que você poderia começar a usar em seus scripts de construção e implementação.
Agora você sabe como aceitar a entrada do usuário, definir parâmetros básicos do sistema usando um script Bash e aplicar essa técnica para alterar nomes de host e endereços IP no Ubuntu Linux.
Source:
https://adamtheautomator.com/change-linux-ip-hostname-bash-script/