Preciso mapear uma palavra "foo"
para um nome de domínio para "foobar.com"
que ela seja capaz de executá ping foo
-la ou enrolá-la.
alias foo='foobar.com'
dando a questão abaixo.
curl -k foo
curl: (6) Could not resolve host: foo
isso é executado no kubernetes e o endereço IP do nome de domínio é dinâmico.
Basicamente, quero mapear o nome do serviço K8s para um nome de domínio interno com IP dinâmico.
O que você está tentando fazer é um alias de servidor aqui.
Opção A (sujo feio)
Você precisa editar o
/etc/hosts
arquivo para issopor exemplo
então você será capaz de
curl foo -H 'Host: foo.com'
O cabeçalho do host é necessário, pois o alias do vhost é foo.com
Opção B (limpo e agradável)
Crie um alias de servidor, dependendo do seu servidor web pode ser uma configuração diferente.
Na configuração do meu apache httpd eu uso:
/etc/httpd/sites-available
- contém a configuração para cada vhost/etc/httpd/sites-enabled
- contém os links simbólicos para os arquivos de configuração dos sites disponíveis, desta forma posso ativar/desativar vhosts sem modificar ou renomear os arquivos nos sites disponíveis, só preciso desvincular para derrubar um vhoste eu modifiquei o conf
/etc/httpd/conf/httpd.conf
então digamos que eu tinha
/etc/httpd/sites-available/foo.com.conf
e uma versão com links simbólicos em/etc/httpd/sites-enabled/foo.com.conf
então faça
cp /etc/httpd/sites-available/foo.com.conf /etc/httpd/sites-available/foo.conf
modifique
foo.conf
para corresponder a isso:e depois
ln -s /etc/httpd/sites-available/foo.conf /etc/httpd/sites-enabled/foo.conf
finalmente reinicie o apache:
systemctl restart httpd
Observe que todas essas ações podem exigir root ou sudo (usuário avançado)
Supondo que seu sistema tenha um servidor DNS, nada mais seria necessário; caso contrário, o arquivo /etc/hosts também precisará ser modificado, mas quando você enrolar, não precisará passar um cabeçalho de host, pois o alias vhost será foo.
ou seja, neste caso
curl http://foo
funcionará bem, enquanto na opção A você também precisa de um cabeçalho de host.Para seu caso de uso simples, você pode usar uma variável:
Todos os seus casos de uso se concentram em comandos de terminal?
Você precisará (o possível footgun) que são apelidos "globais" para fazer uma substituição na linha média. Estes são fornecidos pelo ZSH.
No entanto, observe que qualquer uso simples de
foo
will será substituído, portanto, sefoo
também puder ser um argumento que não deve ser substituído, coisas ruins podem acontecer (portanto, footgun - um comando pode ser interrompido ou os argumentos errados podem fazer com que algo mais aconteça, ou… )portanto, esse é um trabalho extra que você precisará fazer com seu cérebro para sempre lembrar quando
foo
precisa ser citado e quando não precisa, dependendo de quão comumfoo
é.