Skip to content

Instantly share code, notes, and snippets.

@DennyLoko
Last active June 21, 2016 06:32
Show Gist options
  • Save DennyLoko/113e297dad32add365846487e9b6edb3 to your computer and use it in GitHub Desktop.
Save DennyLoko/113e297dad32add365846487e9b6edb3 to your computer and use it in GitHub Desktop.

Configuração do vulcand para os bot's

ATENÇÃO! Preste atenção aos id's em cada etapa para não fazer merda!

Configuração

Passos

  1. Criar backend
  2. Criar frontend
  3. Criar servidores
  4. Configurar rewrites

Exemplos

Speechboto
# Cria o backend
docker exec -ti vulcan_vulcand_1 vctl backend upsert -id speech

# Cria o frontend
docker exec -ti vulcan_vulcand_1 vctl frontend upsert -id speech -b speech -route 'Host("fetish.dannielmagno.com") && PathRegexp("/speech(.*)")'

# Cria o server
docker exec -ti vulcan_vulcand_1 vctl server upsert -b speech -id speech -url http://speechboto

# Seta o rewrite
docker exec -ti vulcan_etcd_1 etcdctl set /vulcand/frontends/speech/middlewares/speech_rw '{"Id":"speech_rw","Priority":1,"Type":"rewrite","Middleware":{"Regexp":"/speech(.*)","Replacement":"$1","RewriteBody":false,"Redirect":false}}'
Diovoboto
# Cria o backend
docker exec -ti vulcan_vulcand_1 vctl backend upsert -id diovo

# Cria o frontend
docker exec -ti vulcan_vulcand_1 vctl frontend upsert -id diovo -b diovo -route 'Host("fetish.dannielmagno.com") && PathRegexp("/diovo(.*)")'

# Cria o server
docker exec -ti vulcan_vulcand_1 vctl server upsert -b diovo -id diovo -url http://diovoboto

# Seta o rewrite
docker exec -ti vulcan_etcd_1 etcdctl set /vulcand/frontends/diovo/middlewares/diovo_rw '{"Id":"diovo_rw","Priority":1,"Type":"rewrite","Middleware":{"Regexp":"/diovo(.*)","Replacement":"$1","RewriteBody":false,"Redirect":false}}'

Reset

Se ainda assim você conseguiu fazer merda, o reset é feito utilizando o etcdctl.

Após a exclusão dos arquivos/diretórios, basta configurar o vulcand novamente, ele é sincronizado com o etcd, então não há necessidade de reiniciar nada.

etcdctl

É uma ferramenta de gerenciamento configurações, que funcionam basicamente como arquivos e diretórios. Ex: docker exec -ti vulcan_etcd_1 etcdctl ls /vulcand

A versão que estou utilizando tem o incoveniente de não permitir deletar um diretório com arquivos dentro, então temos que excluir os arquivos antes de excluir os diretórios. Por sorte, temos poucos arquivos e diretórios para cada bot. =D

Comandos mais utilizados

  • Exlusão de arquivo: etcdctl rm <arquivo>
  • Exlusão de diretório: etcdctl rmdir <diretório>
  • Leitura de arquivo: etcdctl get <arquivo>
  • Escrita de arquivo: etcdctl set <arquivo>
  • Ajuda: etcdctl help

Paths que devem ser removidos

  • /vulcand/backends/<bot>/servers/<bot>
  • /vulcand/backends/<bot>/servers/
  • /vulcand/backends/<bot>/backend
  • /vulcand/backends/<bot>/
  • /vulcand/frontends/<bot>/middlewares/<bot>_rw
  • /vulcand/frontends/<bot>/middlewares/
  • /vulcand/frontends/<bot>/frontend
  • /vulcand/frontends/<bot>/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment