hostnamectl | Aprigio Simoes hostnamectl – Aprigio Simoes
HOSTNAME (no systemd)
O que é um hostname? Primeiro vale lembrar que existem vários tipos de nomes que podem ser consultados e atraves do uso do sistema systemd existem duas definições como o hostname "pretty" e o hostname "static". Um hostname pode ser uma string de forma livre em até 64 caracteres de comprimento, mas é recomendado que os nomes para hostnames "estáticos" e "transitórios" estejam apenas com 7 bit ASCII de caracteres minúsculos, sem espaço e sem pontos (da mesma maneira como é constituído um fqdn).
No systemd a consulta e a definição do hostname é realizada pela unit systemd-hostnamed. O aruqivo para esta unidade se encontra em /usr/lib/systemd/system/systemd-hostnamed.service. O utilitário hostnamectl é fornecido nos sistemas gerenciados pelo systemd e é uma grande inovação assim como o timedatectl utilizado para alterar informações de data e hora em systemd, journalctl para visualizar os logs do syslog/rsyslog, localectl para configurações de locale e keyboard do X11 e outras bilhoes de coisas que vamos ver mais para frente em outras matérias. Existem no sistema 3 classes de hostname, são elas: static, pretty e transient (definidas por –static, –transient, –pretty).
O nome "pretty" é utilizado como "hostname high level" para definições de hardware e como definições em casos de nomes repetidos em um ambiente, ele por aceitar espaços e caracteres especiais definem melhor quem é o host, assim como o chassis que permite definir um nome para o seu hardware, seja laptop, desktop, server e pode ser consultados pelo hostnamectl. Ja o nome statico é um nome host definido pelo kernel no procedimento de boot, sendo ele geralmente definido por uma padrão "fqdn". Ja o hostname padrão "transient" geralmente é definido para um nome temporário para dhcp, ele é um nome de host dinâmico que é direcionado e mantido pelo kernel e que geralmente é enviado ou alterado pelo dhcp ou mdns se houver.
Tambem existe o nome do tipo "chassis" que é usado por alguns softwares para visualizar o tipo da maquina que geralmente esse fingerprint é enviado e configurado como "desktop", "laptop", "servidor", "tablet" e "telefone", como tambem existem outros tipos como "vm" e "container". Caso vc tenha ficado curioso como esta ai, digite hostnamectl status (ou apenas o comando hostnamectl). No hostnamectl também é possivel definir um icon-name com a opção set-icon-name que é utilizado por aplicações graficas.
O arquivo de configuração padrão que define de forma estática e dinamica o hostname em sistemas RHEL7, CentOS7 e Fedora é o /etc/hostname e não mais pela variável HOSTNAME em /etc/sysconfig/network. Antes tambem era utilizado o comando hostname para definir o mesmo, mas hoje vc ja pode substituir pelo utilitário hostnamectl. Este, também esta automatizado no processo de instalação pelo AutoYaST (no caso SuSE) e pelo Anaconda no caso RHEL/CentOS e Fedora. O comando abaixo possui apenas a opção set-hostname que define o novo hostname, note que apos executar, ele vai substituir sozinho o arquivo /etc/hostname sem a necessidade de editar. O comando hostnamectl também pode ser utilizado para visualizar as configurações da máquina como o nome static, pretty, chassis, chassis-id, boot-id, nome do sistema operacional, versão do kernel compilado ou modular e arquitetura.
# hostnamectl set-hostname novo_nome
Static hostname: aprigio02
Pretty hostname: Aprigio Simoes Computer Power
Machine ID: <ocultado>
Boot ID: <ocultado>
Kernel: Linux 3.15.aprigio.fc20.x86_64
Agora voce tambem pode alterar o hostname utilizando as classes mencionadas acima com o comando hostnamectl set-hostname <nome> <classe>
Para alterar o hostname baseado na classe static (que é o padrão)
# hostnamectl set-hostname <nome> –static
Para alterar o hostname baseado na classe "pretty"
# hostnamectl set-hostname <nome> –pretty
Para verificar (pode ser sem o status também)
Observação: o comando hostname ainda existe e pode ser utilizado, ou seja, se voce quiser continuar verificando o seu hostname pelo comando hostname e verificar seu –short, –domain e –yp, vai funcionar corretamente. Tambem é posível verificar todos os endereços de IP que sua máquina possui atraves do comando hostname –all-ip-addresse e hostname –all-ip-addresses
Mais informações sobre o hostnamectl em http://www.freedesktop.org/software/systemd/man/hostnamectl.html