草庐IT

运维自动化之ansible playbook安装nginx

dl528888 2023-03-28 原文
上次介绍了如何使用ansible playbook安装mysql(http://dl528888.blog.51cto.com/2382721/1437882),这次介绍一下如何使用playbook安装nginx。

下面是安装nginx的信息:

nginx_user: www                        nginx用户 nginx_port: 80                         nginx监听端口 nginx_web_dir: /data/webroot/nginx     nginx的目录 nginx_version: 1.4.3                   nginx的版本 pcre_version: 8.33                     pcre的版本 pretended_name: Tengine                为了安全起见,把nginx名字改为tengine pretended_version: 1.5.2               隐藏版本,换个tengine的版本备注:此playbook仅能对centos或者redhat的6.x版本进行安装。

下面是安装nginx的playbook结构

09:33:15 # tree  nginx_* nginx_delete ├── files ├── handlers ├── meta │   └── main.yml ├── tasks │   ├── delete.yml │   └── main.yml ├── templates └── vars     └── main.yml nginx_install ├── files │   └── nginx-1.4.3.tar.gz ├── handlers ├── meta │   └── main.yml ├── tasks │   ├── copy.yml │   ├── delete.yml │   ├── install.yml │   └── main.yml ├── templates │   ├── index.html │   ├── index.php │   ├── install_nginx.sh │   ├── nginx │   ├── nginx.conf │   └── vhost.conf └── vars     └── main.yml 12 directories, 17 filesplaybook的nginx安装是

09:34:04 # cat nginx_install.yml  --- - hosts: "`host`"   remote_user: "`user`"   gather_facts: True   roles:     - common     - pcre_install     - nginx_installplaybook的nginx删除为

09:35:06 # cat nginx_delete.yml  --- - hosts: "`host`"   remote_user: "`user`"   gather_facts: True   roles:     - nginx_delete     - pcre_delete1、安装nginx

09:26:58 # time ansible-playbook nginx_install.yml --extra-vars "host=192.168.240.17 user=root" --private-key=/root/test.pem  PLAY [192.168.240.17] *********************************************************  GATHERING FACTS ***************************************************************  ok: [192.168.240.17] TASK: [common | Install initializtion require software] ***********************  changed: [192.168.240.17] TASK: [pcre_install | Copy Pcre Software To Redhat Client] ********************  changed: [192.168.240.17] TASK: [pcre_install | Uncompression Pcre Software In Redhat Client] ***********  changed: [192.168.240.17] TASK: [pcre_install | Delete Pcre Software In Redhat Client] ******************  changed: [192.168.240.17] TASK: [nginx_install | Copy Nginx Software To Redhat Client] ******************  changed: [192.168.240.17] TASK: [nginx_install | Uncompression Nginx Software To Redhat Client] *********  changed: [192.168.240.17] TASK: [nginx_install | Copy Nginx Start Script To Redhat Client] **************  changed: [192.168.240.17] TASK: [nginx_install | Copy Nginx Config To Redhat Client] ********************  changed: [192.168.240.17] TASK: [nginx_install | Copy Nginx Vhost Config to RedHat Client] **************  changed: [192.168.240.17] TASK: [nginx_install | Create Nginx User In Redhat Client] ********************  changed: [192.168.240.17] TASK: [nginx_install | Create Nginx  Dir] *************************************  changed: [192.168.240.17] => (item=vhost) changed: [192.168.240.17] => (item=logs) TASK: [nginx_install | Modify Nginx Dir Permission In Redhat Client] **********  changed: [192.168.240.17] => (item=/data/webroot/nginx) changed: [192.168.240.17] => (item=/usr/local/nginx-1.4.3) TASK: [nginx_install | Create Index Html To Redhat Client] ********************  changed: [192.168.240.17] TASK: [nginx_install | Install Check Script In Redhat Client] *****************  changed: [192.168.240.17] TASK: [nginx_install | Start Nginx Service In Redhat Client] ******************  changed: [192.168.240.17] TASK: [nginx_install | Add Boot Start Nginx Service In Redhat Client] *********  changed: [192.168.240.17] TASK: [nginx_install | Delete Nginx compression Software In Redhat Client] ****  changed: [192.168.240.17] PLAY RECAP ********************************************************************  192.168.240.17             : ok=18   changed=17   unreachable=0    failed=0    real 0m53.357s user 0m2.433s sys 0m0.341s2、安装后测试

[root@ip-10-10-240-21 local]# ps -ef|grep nginx root     27791     1  0 21:27 ?        00:00:00 nginx: master process /usr/local/nginx-1.4.3/sbin/nginx -c /usr/local/nginx-1.4.3/conf/nginx.conf www      27792 27791  0 21:27 ?        00:00:00 nginx: worker process                                                       www      27794 27791  0 21:27 ?        00:00:00 nginx: worker process                                                       www      27795 27791  0 21:27 ?        00:00:00 nginx: worker process                                                       www      27796 27791  0 21:27 ?        00:00:00 nginx: worker process                                                       www      27797 27791  0 21:27 ?        00:00:00 nginx: worker process                                                       www      27798 27791  0 21:27 ?        00:00:00 nginx: worker process                                                       www      27799 27791  0 21:27 ?        00:00:00 nginx: worker process                                                       www      27800 27791  0 21:27 ?        00:00:00 nginx: worker process                                                       root     27905 26349  0 21:28 pts/0    00:00:00 grep nginx [root@ip-10-10-240-21 local]# chkconfig --list|grep nginx nginx           0:off 1:off 2:off 3:on 4:on 5:on 6:off [root@ip-10-10-240-21 local]# /etc/init.d/nginx status Usage: /etc/init.d/nginx {start|restart|reload|stop|test|show} [root@ip-10-10-240-21 local]# curl 10.10.240.21 Nginx 1.4.3 in 10.10.240.21  is success! [root@ip-10-10-240-21 local]# curl -I 10.10.240.21 HTTP/1.1 200 OK Server: Tengine/1.5.2 Date: Wed, 16 Jul 2014 01:35:59 GMT Content-Type: text/html Content-Length: 41 Last-Modified: Wed, 16 Jul 2014 01:27:57 GMT Connection: keep-alive ETag: "53c5d51d-29" Accept-Ranges: bytes可与看到安装成功,并且软件名与版本都隐藏了

3、删除nginx

09:28:02 # time ansible-playbook nginx_delete.yml --extra-vars "host=192.168.240.17 user=root" --private-key=/root/test.pem  PLAY [192.168.240.17] *********************************************************  GATHERING FACTS ***************************************************************  ok: [192.168.240.17] TASK: [nginx_delete | stop nginx service] *************************************  changed: [192.168.240.17] TASK: [nginx_delete | Delete Nginx Boot Start Script] *************************  changed: [192.168.240.17] TASK: [nginx_delete | Delete Nginx Dir] ***************************************  changed: [192.168.240.17] TASK: [nginx_delete | Delete Nginx User] **************************************  changed: [192.168.240.17] TASK: [nginx_delete | Delete Nginx Service Start Script] **********************  changed: [192.168.240.17] TASK: [pcre_delete | Delete Pcre] *********************************************  changed: [192.168.240.17] PLAY RECAP ********************************************************************  192.168.240.17             : ok=7    changed=6    unreachable=0    failed=0    real 0m30.222s user 0m0.774s sys 0m0.126s4、删除后测试

[root@ip-10-10-240-21 local]# ps -ef|grep nginx root     28417 26349  0 21:37 pts/0    00:00:00 grep nginx [root@ip-10-10-240-21 local]# chkconfig --list|grep nginx [root@ip-10-10-240-21 local]# ll /etc/init.d/nginx ls: cannot access /etc/init.d/nginx: No such file or directory [root@ip-10-10-240-21 local]# ll /usr/local/ total 44 drwxr-xr-x. 2 root   root   4096 Sep 23  2011 bin drwxr-xr-x. 2 root   root   4096 Sep 23  2011 etc drwxr-xr-x. 2 root   root   4096 Sep 23  2011 games drwxr-xr-x. 2 root   root   4096 Sep 23  2011 include drwxr-xr-x. 2 root   root   4096 Jul 10 22:43 lib drwxr-xr-x. 2 root   root   4096 Sep 23  2011 lib64 drwxr-xr-x. 2 root   root   4096 Sep 23  2011 libexec drwxr-xr-x. 2 root   root   4096 Sep 23  2011 sbin drwxr-xr-x. 5 root   root   4096 May 12  2013 share drwxr-xr-x. 3 root   root   4096 May 12  2013 src drwxr-xr-x  5 zabbix zabbix 4096 Jul  8 02:17 zabbix可与看到都删除了。

如果大家想使用我的例子,可以从github里下载(地址是https://github.com/dl528888/ansible-examples/tree/master/nginx_install),然后放到/etc/ansible目录里,下面是内容

09:39:13 # unzip -v  nginx_install.zip  Archive:  nginx_install.zip  Length   Method    Size  Cmpr    Date    Time   CRC-32   Name --------  ------  ------- ---- ---------- ----- --------  ----      132  Defl:N       95  28% 07-16-2014 09:34 d75c7ef9  nginx_install.yml      117  Defl:N       89  24% 07-16-2014 09:35 27eb35d2  nginx_delete.yml        0  Stored        0   0% 07-03-2014 17:29 00000000  roles/common/        0  Stored        0   0% 06-30-2014 15:58 00000000  roles/common/meta/      267  Defl:N      178  33% 07-16-2014 09:25 31ee20ec  roles/common/meta/main.yml        0  Stored        0   0% 07-14-2014 13:40 00000000  roles/common/tasks/      586  Defl:N      268  54% 07-16-2014 09:25 1c0af2a1  roles/common/tasks/main.yml        0  Stored        0   0% 06-19-2014 13:43 00000000  roles/common/handlers/       58  Defl:N       48  17% 07-16-2014 09:25 8d058053  roles/common/handlers/main.yml        0  Stored        0   0% 06-19-2014 13:30 00000000  roles/common/vars/        0  Stored        0   0% 06-19-2014 13:30 00000000  roles/common/templates/        0  Stored        0   0% 06-19-2014 13:30 00000000  roles/common/files/        0  Stored        0   0% 06-24-2014 11:27 00000000  roles/nginx_install/        0  Stored        0   0% 07-08-2014 14:12 00000000  roles/nginx_install/meta/      198  Defl:N      149  25% 07-16-2014 09:25 e527ea95  roles/nginx_install/meta/main.yml        0  Stored        0   0% 07-03-2014 17:46 00000000  roles/nginx_install/tasks/      198  Defl:N      153  23% 07-16-2014 09:25 eb70a996  roles/nginx_install/tasks/delete.yml       65  Defl:N       41  37% 07-16-2014 09:25 a3197ca7  roles/nginx_install/tasks/main.yml     1142  Defl:N      300  74% 07-16-2014 09:25 34ddc722  roles/nginx_install/tasks/copy.yml     1574  Defl:N      431  73% 07-16-2014 09:25 13c2a951  roles/nginx_install/tasks/install.yml        0  Stored        0   0% 06-19-2014 13:30 00000000  roles/nginx_install/handlers/        0  Stored        0   0% 06-24-2014 10:38 00000000  roles/nginx_install/vars/      155  Defl:N      105  32% 07-16-2014 09:25 70e58924  roles/nginx_install/vars/main.yml        0  Stored        0   0% 07-16-2014 09:25 00000000  roles/nginx_install/templates/      738  Defl:N      337  54% 07-16-2014 09:25 bd02415e  roles/nginx_install/templates/vhost.conf      784  Defl:N      346  56% 06-24-2014 11:37 6d09dba5  roles/nginx_install/templates/install_nginx.sh     1642  Defl:N      698  58% 07-16-2014 09:25 60b4ed9a  roles/nginx_install/templates/nginx.conf      196  Defl:N      147  25% 07-16-2014 09:25 fa0f7181  roles/nginx_install/templates/index.php       77  Defl:N       71   8% 07-16-2014 09:25 1fdd8439  roles/nginx_install/templates/index.html      926  Defl:N      459  50% 07-16-2014 09:25 4aa2e8fa  roles/nginx_install/templates/nginx        0  Stored        0   0% 07-03-2014 14:24 00000000  roles/nginx_install/files/  2346820  Defl:N  2283881   3% 07-16-2014 09:25 8a501ba6  roles/nginx_install/files/nginx-1.4.3.tar.gz        0  Stored        0   0% 06-23-2014 14:03 00000000  roles/nginx_delete/        0  Stored        0   0% 07-08-2014 14:12 00000000  roles/nginx_delete/meta/      197  Defl:N      147  25% 07-16-2014 09:25 ab72e486  roles/nginx_delete/meta/main.yml        0  Stored        0   0% 07-01-2014 17:05 00000000  roles/nginx_delete/tasks/      893  Defl:N      289  68% 07-16-2014 09:25 68681d99  roles/nginx_delete/tasks/delete.yml       22  Stored       22   0% 07-16-2014 09:25 728ce4aa  roles/nginx_delete/tasks/main.yml        0  Stored        0   0% 06-24-2014 14:14 00000000  roles/nginx_delete/handlers/        0  Stored        0   0% 06-24-2014 12:48 00000000  roles/nginx_delete/vars/      155  Defl:N      105  32% 07-16-2014 09:25 70e58924  roles/nginx_delete/vars/main.yml        0  Stored        0   0% 06-19-2014 17:32 00000000  roles/nginx_delete/templates/        0  Stored        0   0% 06-24-2014 13:53 00000000  roles/nginx_delete/files/ --------          -------  ---                            -------  2356942          2288359   3%                            43 files如果觉得好,给个赞并多评论,谢谢。

有关运维自动化之ansible playbook安装nginx的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  4. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  5. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  6. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  7. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  8. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  9. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  10. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

随机推荐