Recarregamento automático de arquivos de configuração (nginx.conf, etc) após alterações

1

Eu continuo esquecendo de recarregar as configurações do nginx, sudo service nginx reload , enquanto trabalho / experimentando / aprendendo os arquivos de configuração, nginx (e outros arquivos de configuração incluídos).

Existe uma maneira de conseguir isso, que o nginx recarrega os arquivos de configuração, após qualquer uma das alterações abaixo:

  • /etc/nginx/nginx.conf
  • / etc / nginx / sites-available / (qualquer alteração, exclusão, criação de arquivos)
  • / etc / nginx / sites-enabled / (qualquer alteração, exclusão, criação de arquivos)

Você pode pensar que é bobagem / estupidez que eu esqueço de recarregar, mas apesar de ser novo e realmente aprender e experimentar, há realmente o suficiente para acompanhar.

    
por Mads Skjern 07.07.2015 / 15:04

2 respostas

4

Use um sistema de gerenciamento de configuração para implantar essas alterações e inclua um acionador para reiniciar automaticamente os serviços cujos arquivos de configuração foram alterados.

Vale muito a pena adquirir o hábito de usar o CM enquanto você está aprendendo, pois será muito mais difícil aprender hábitos ruins mais tarde em sua carreira.

Para começar, aqui está um playbook ansible simples que irá implantar um arquivo de configuração nginx para o seu servidor e, em seguida, reiniciar o nginx se algo mudou:

---
- hosts: web
  sudo: yes

  tasks:
    - name: Install packages
      apt: state=installed install_recommends=no name={{ item }}
      with_items:
        - nginx

    - name: Deploy nginx config file
      copy: src=nginx.conf dest=/etc/nginx/nginx.conf
      notify: restart nginx

  handlers:
    - name: restart nginx
      service: name=nginx state=restarted

Salve esse texto em um arquivo como foo.yml . Você também precisará de um arquivo de inventário para informar qual host (es) executar esses comandos. Crie um arquivo hosts com conteúdo como:

[web]
servername.example.com

Salve seu playbook, o arquivo de inventário e seu nginx.conf no mesmo diretório.

Então você pode aplicar o manual:

$ ansible-playbook foo.yml -i hosts -K

Após a emissão desse comando, você será perguntado pela sua senha sudo. Forneça-o e, em seguida, o manual será executado.

    
por 07.07.2015 / 15:05
0

Obviamente, você quer ter um CM (Configuration Management System) e o Ansible é capaz de automatizar um p implantação.

Acho que o CI (Continuous Integration) ou CD (Continuous Deployment) também pode atender às suas necessidades.use git + CI / CD + VM, você pode testar seu serviço facilmente.Alguns serviços que você pode experimentar:

Shippable, Circle CI, GitLab CI.

    
por 07.07.2015 / 20:31

Tags