我一直忘记重新加载nginx设置, sudo service nginx reload ,而在/实验/学习configuration文件, nginx (和其他包括的configuration文件)。
有没有一种方法来实现这一点,Nginx重新加载configuration文件,下面的任何更改后:
你可能会认为我忘记重新加载是愚蠢/愚蠢的,但在新的实际学习和实验中,确实有足够的logging。
使用configurationpipe理系统部署这些更改,并包含触发器以自动重新启动其configuration文件已更改的服务。
在学习的过程中,现在习惯使用CM是非常值得的,因为在以后的职业生涯中学习不好的习惯会变得更加困难。
为了让你开始,下面是一个简单的,可靠的剧本,将部署一个nginxconfiguration文件到你的服务器,然后重新启动nginx如果有任何改变:
--- - 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
将该文本保存到像foo.yml这样的文件中。 你还需要一个库存文件来告诉谁能够运行这些命令的主机。 创build一个包含如下内容的hosts文件:
[web] servername.example.com
将你的剧本,库存文件和你的nginx.conf保存在同一个目录下。
那么你可以应用剧本:
$ ansible-playbook foo.yml -i hosts -K
发出该命令后,您将被要求input您的sudo密码。 提供它,然后剧本将运行。
很明显,你想拥有一个CM(configurationpipe理系统),而Ansible是自动化应用部署的头号人物。
我认为CI(持续集成)或CD(连续部署)也可以满足您的需求。使用git + CI / CD + VM您可以轻松testing您的服务。您可以尝试一些服务:
Shippable,Circle CI,GitLab CI。