ATENÇÃO! Preste atenção aos id's em cada etapa para não fazer merda!
- Criar backend
- Criar frontend
- Criar servidores
- Configurar rewrites
# 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}}'
# 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}}'
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.
É 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
- 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
- /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>
/