Mapeando uma palavra “foo” para um nome de domínio “foobar.com”

1

Eu preciso mapear uma palavra "foo" para um nome de domínio "foobar.com" Portanto, ele deve conseguir executar ping foo ou encurvá-lo.

alias foo='foobar.com'

dando abaixo questão.

curl -k foo
curl: (6) Could not resolve host: foo

isso é executado no kubernetes e o endereço IP do domínio é dinâmico.

Basicamente eu quero mapear o nome do serviço do K8s para um nome de domínio interno que seja dinâmico em IP.

    
por Ruwan Ranganath 29.05.2018 / 16:53

3 respostas

3

O que você está tentando fazer é um alias de servidor aqui.

Opção A (feia e suja)

Você precisa editar o arquivo /etc/hosts para isso

por exemplo.

${IP} foo foo.com

então você poderá

curl foo -H 'Host: foo.com'

O cabeçalho do host é necessário porque o alias do vhost é foo.com

Opção B (limpa e agradável)

Crie um alias de servidor, dependendo do seu servidor web, pode ser uma configuração diferente.

No meu httpd config do apache eu uso:

/etc/httpd/sites-available - contém a configuração de cada vhost

/etc/httpd/sites-enabled - contém os links simbólicos para os arquivos de configuração disponíveis no site, dessa forma eu posso ativar / desativar vhosts sem modificar ou renomear os arquivos em sites disponíveis, eu só preciso desvincular para derrubar um vhost

e eu modifiquei o conf

/etc/httpd/conf/httpd.conf

[...]
IncludeOptional sites-enabled/*.conf'
[...]

então vamos dizer que eu tive

/etc/httpd/sites-available/foo.com.conf e uma versão com link simbólico em /etc/httpd/sites-enabled/foo.com.conf

faça

cp /etc/httpd/sites-available/foo.com.conf /etc/httpd/sites-available/foo.conf

modifique foo.conf para corresponder a isso:

[...]    
ServerName foo
ServerAlias foo
[...]

e depois ln -s /etc/httpd/sites-available/foo.conf /etc/httpd/sites-enabled/foo.conf

finalmente reinicie o apache:

systemctl restart httpd

Observação todas essas ações podem exigir raiz 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 precisará ser modificado também, mas quando você enrolar, não será necessário passar um cabeçalho de host, pois o alias do vhost será foo.

i.e. Nesse caso, curl http://foo funcionará bem, enquanto na opção A você precisará de um cabeçalho de host também.

    
por 29.05.2018 / 17:19
1

Para o seu caso de uso simples, você pode usar uma variável:

$ foo="foobar.com"
$ curl -k "${foo}"

Todos os seus casos de uso estão centrados nos comandos do terminal?

    
por 29.05.2018 / 17:24
0

Você precisará (a arma possível) de aliases "globais" para fazer uma substituição no meio da linha. Estes são fornecidos pelo ZSH.

$ exec zsh
% alias -g foo=foobar.com
% print foo
foobar.com
% 

No entanto, note que qualquer o uso nu de foo será substituído, assim, se foo também puder ser um argumento que não deve ser substituído, então coisas ruins podem acontecer (portanto, footgun - um comando pode quebrar ou os argumentos errados podem causar outra coisa, ou…)

% print 'foo'
foo

, então é um trabalho extra que você precisará fazer com seu cérebro para sempre lembrar quando foo precisa ser citado versus quando não é, dependendo de quão comum é foo .

    
por 29.05.2018 / 17:24