bash 脚本编程十九 Nginx自动部署


自动化部署达到以下几个目的:

1.编译

2.安装

3.生成HTTPS 证书

4.配置

5.设置Ubuntu 服务

首先将Nginx的压缩包解压并放在工程目录下,然后将要准备的的配置文件放在conf目录下,还有作为service需要的启动脚本文件nginx

目录结构如下:

  1. # tree -L 2  
  2. tree -L 2  
  3. .  
  4. ├── conf  
  5. │   ├── agol.conf  
  6. │   └── nginx.conf  
  7. ├── install.sh  
  8. ├── install.sh~  
  9. ├── nginx  
  10. └── nginx-1.2.3  
  11.     ├── auto  
  12.     ├── CHANGES  
  13.     ├── CHANGES.ru  
  14.     ├── conf  
  15.     ├── configure  
  16.     ├── contrib  
  17.     ├── html  
  18.     ├── LICENSE  
  19.     ├── man  
  20.     ├── README  
  21.     └── src  
  22.   
  23. 8 directories, 10 files  
现在看一下install.sh脚本内容:
  1. #!/bin/bash   
  2.   
  3. source ../common/tool.sh  
  4.   
  5. installDpkg "libpcre3"  
  6. installDpkg "libpcre3-dev"  
  7. installDpkg "libssl-dev"  
  8. installDpkg "openssl"  
  9.   
  10. cd ./nginx-1.2.3  
  11. ./configure --prefix=/usr/nginx --with-http_ssl_module  
  12. make  
  13. make install  
  14.   
  15. cd ../  
  16.   
  17. cp ./nginx /etc/init.d/  
  18. update-rc.d nginx defaults  
  19.   
  20. cp -r ./conf/* /usr/nginx/conf/  
  21.   
  22. #generate ssl certificate-begin  
  23. cd /usr/nginx/conf  
  24. openssl genrsa -des3 -out server.key -passout pass:freebird 1024  
  25. openssl req -new -key server.key -out server.csr -passin pass:freebird -batch  
  26. cp server.key server.key.org  
  27. openssl rsa -in server.key.org -out server.key -passin pass:freebird  
  28. openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt  
  29.   
  30. cd -  
  31. #generate ssl certificate-end  
  32.   
  33. service nginx start  
  34.   
  35. cd ./nginx-1.2.3  
  36. make clean  
这里要关注的是生成证书的时候使用批处理方式

openssl genrsa 命令用到 -passout pass:freebird 避免提示输入口令

openssl req 命令用到 -passin pass:freebird -batch 提供口令,避免输入一堆其他信息

openssl rsa 命令也用到 -passin pass:freebird 提供口令

nginx启动脚本参考我的另一篇文章:

相关内容