RhysGoodwin
(Rhys Goodwin)
Fevereiro 27, 2024, 5:27am
1
Olá pessoal,
Estou configurando automação para implantação e migração com Ansible, mas estou com um problema no modo somente leitura.
Quando ativei o modo somente leitura com:
docker exec app discourse enable_readonly
ou
./launcher enter app
discourse enable_readonly
Após cerca de 1:20, o site sai do modo somente leitura por conta própria.
Se eu ativar o modo somente leitura pela interface web (seção admin/backups), ele permanece ativado até que eu o desative.
Alguma ideia?
1 curtida
Lilly
(Lillian Louis)
Fevereiro 27, 2024, 6:31am
2
Você verificou seus logs? Talvez você tenha um job em segundo plano ou um plugin em algum lugar que esteja interrompendo o processo.
RhysGoodwin
(Rhys Goodwin)
Fevereiro 27, 2024, 6:56am
3
Olá Lilly,
Obrigado pela sua resposta. Esta é uma instalação padrão nova e eu não instalei nenhum plugin ou criei nenhum trabalho. Quais logs devo verificar? Desculpe, sou um pouco novato.
Eu tentei tail -f em:
/var/discourse/shared/standalone/log/rails/unicorn.stdout.log
/var/discourse/shared/standalone/log/rails/unicorn.stderr.log
/var/discourse/shared/standalone/log/rails/production_errors.log
/var/discourse/shared/standalone/log/rails/production.log
/var/discourse/shared/standalone/log/rails/sidekiq.log
/var/discourse/shared/standalone/log/var-log/redis/current
Eu esperei o evento ocorrer enquanto acompanhava os logs, mas não vi nada que se destacasse.
É estranho para mim que funcione perfeitamente quando ativado pela WebUI, mas não pela linha de comando.
pfaffman
(Jay Pfaffman)
Fevereiro 27, 2024, 6:39pm
4
Também tive problemas ao usar isso, tanto para ativar quanto para desativar o modo somente leitura. Da última vez, acabei executando Discourse.enable_readonly_mode no rails.
É sempre uma emergência quando acontece e não investiguei qual pode ser o problema.
Para constar, em minhas próprias ferramentas Ansible, não uso o modo somente leitura, mas uso Introducing Post Deployment Migration
1 curtida
RhysGoodwin
(Rhys Goodwin)
Fevereiro 27, 2024, 6:59pm
5
Obrigado, Jay. Suspeito que estou adotando uma abordagem XY para o problema. Vou verificar a Migração Pós-Implantação. Obrigado por isso.
Acho que a outra opção pode ser ativar o RO por meio de uma chamada de API.
pfaffman
(Jay Pfaffman)
Fevereiro 27, 2024, 7:11pm
6
- name: post migrations
shell: "docker exec {{ discourse_yml }} bash -c 'rake db:ensure_post_migrations db:migrate'"
become: yes
então isso pode funcionar para o modo somente leitura:
- name: post migrations
shell: "docker exec {{ discourse_yml }} bash -c 'echo Discourse.enable_readonly_mode | rails c'"
become: yes
RhysGoodwin
(Rhys Goodwin)
Fevereiro 27, 2024, 7:13pm
7
Obrigado, muito apreciado. Vou tentar isso esta noite.
1 curtida
A diferença se deve ao modo somente leitura que você está usando?
Sara Devlaeminck:
READONLY_MODE_KEY é usado principalmente para o processo de backup e restauração e é acionado pelo próprio aplicativo. Este modo também pode ser ativado ou desativado a partir da interface de linha de comando do Discourse com discourse enable_readonly e discourse disable_readonly. No entanto, esta chave não sobreviverá a uma reinicialização do contêiner.
USER_READONLY_MODE_KEY é usado quando um administrador clica no botão somente leitura na interface de administração. A coisa especial sobre esta chave é que não a definimos como uma chave de expiração, pois a somente leitura habilitada por um usuário precisa sobreviver a reinicializações do contêiner. Outras chaves são definidas com um TTL de 60 segundos e temos um thread para estender a expiração a cada 30 segundos para garantir que um aplicativo nunca fique preso no modo somente leitura.
3 curtidas
RhysGoodwin
(Rhys Goodwin)
Fevereiro 28, 2024, 10:53pm
9
Obrigado JammyDodger! As informações e o link foram muito úteis. Não tenho certeza do que constitui uma reinicialização do contêiner - até onde sei, meu contêiner não está reiniciando a cada ~1:30, que é o tempo que o modo RO permanece ativado ao usar discourse enable_readonly, ou seja, Discourse.enable_readonly_mode(Discourse::READONLY_MODE_KEY)
Posso confirmar, no entanto, que Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY) “persiste” indefinidamente, que era o que eu estava tentando alcançar
1 curtida
RhysGoodwin
(Rhys Goodwin)
Fevereiro 29, 2024, 12:20am
10
Para completar:
- name: Definir modo somente leitura para o host do fórum ativo
ansible.builtin.shell: |
docker exec app bash -c 'echo Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY) | rails c'
register: enable_readonly_output
2 curtidas
system
(system)
Fechado
Março 30, 2024, 12:21am
11
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.