Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


使用 ansible 安装 NGINX 和 NGINX Plus

2015-10-8 11:13    评论: 2 收藏: 3    

在 Ubuntu 上创建 Ansible Playbook 来安装 NGINX 和 NGINX Plus

Ubuntu 服务器 上部署 NGINX 和 NGINX Plus 的过程与 CentOS 很相似,我将一步一步的指导来完成整个部署文件,并指出和 CentOS 的细微差异。

首先和 CentOS 一样,创建 Ansible 目录结构和 Ansible 主部署文件。也按“创建 NGINX 服务器的列表”小节的描述创建 /etc/ansible/hosts 文件。对于 NGINX Plus,你也需要安装“复制 NGINX Plus 证书和密钥到 Ansible 服务器”小节的描述复制证书和密钥。

下面是开源 NGINX 的 install_nginx.yml 部署文件。在第一节,我们使用 apt_key 模块导入 NGINX 的签名密钥。接下来的两节使用 lineinfile 模块来添加 Ubuntu 14.04 的软件包 URL 到 sources.list 文件中。最后,我们使用 apt 模块来更新缓存并安装 NGINX(apt 取代了我们在 CentOS 中部署时的 yum 模块)。

# ./ansible-nginx/tasks/install_nginx.yml

- name: NGINX | 添加 NGINX 签名密钥
  apt_key: url=http://nginx.org/keys/nginx_signing.key state=present

- name: NGINX | 为 NGINX 添加 sources.list deb url  
  lineinfile: dest=/etc/apt/sources.list line="deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx"

- name: NGINX Plus | 为 NGINX 添加 sources.list deb-src url  
  lineinfile: dest=/etc/apt/sources.list line="deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx"

- name: NGINX | 更新 apt 缓存
  apt:
    update_cache: yes

- name: NGINX | 安装 NGINX
  apt:
    pkg: nginx
    state: latest

- name: NGINX | 启动 NGINX
  service:
    name: nginx
    state: started

下面是 NGINX Plus 的部署文件 install_nginx.yml。前四节设置了 NGINX Plus 密钥和证书。然后,我们像开源的 NGINX 一样用 apt_key 模块导入签名密钥,get_url 模块为 NGINX Plus 下载 apt 配置文件。shell 模块使用 printf 命令写下输出到 sources.list.d 目录中的 nginx-plus.list 文件。最终的 name 模块和开源 NGINX 一样。

# ./ansible-nginx-plus/tasks/install_nginx_plus.yml

- name: NGINX Plus | 创建 NGINX Plus ssl 证书 repo 目录
  file: path=/etc/ssl/nginx state=directory group=root mode=0700

- name: NGINX Plus | 复制 NGINX Plus 仓库证书
  copy: src=/etc/ssl/nginx/nginx-repo.crt dest=/etc/ssl/nginx/nginx-repo.crt owner=root group=root mode=0700

- name: NGINX Plus | 复制 NGINX Plus 仓库密钥
  copy: src=/etc/ssl/nginx/nginx-repo.key dest=/etc/ssl/nginx/nginx-repo.key owner=root group=root mode=0700

- name: NGINX Plus | 安装 NGINX Plus CA 证书
  get_url: url=https://cs.nginx.com/static/files/CA.crt dest=/etc/ssl/nginx/CA.crt mode=0700

- name: NGINX Plus | 添加 NGINX Plus 签名密钥
  apt_key: url=http://nginx.org/keys/nginx_signing.key state=present

- name: NGINX Plus | 安装 Apt-Get NGINX Plus 仓库
  get_url: url=https://cs.nginx.com/static/files/90nginx dest=/etc/apt/apt.conf.d/90nginx mode=0700

- name: NGINX Plus | 为 NGINX Plus 添加 sources.list url  
  shell: printf "deb https://plus-pkgs.nginx.com/ubuntu `lsb_release -cs` nginx-plus\n" >/etc/apt/sources.list.d/nginx-plus.list

- name: NGINX Plus | 运行 apt-get update
  apt:
    update_cache: yes

- name: NGINX Plus | 安装 NGINX Plus 通过 apt-get
  apt:
    pkg: nginx-plus
    state: latest

- name: NGINX Plus | 启动 NGINX Plus
  service:
    name: nginx
    state: started

现在我们已经准备好运行 ansible-playbook 命令:

$ sudo ansible-playbook --ask-pass $HOME/ansible-nginx-plus/deploy.yml

你应该得到一个成功的 play recap。如果你没有成功,你可以使用冗余参数,以帮助你解决出现的问题。

小结

我在这个教程中演示是什么是 Ansible,可以做些什么来帮助你自动部署 NGINX 或 NGINX Plus,这仅仅是个开始。还有许多有用的模块,包括从用户账号管理到自定义配置模板等。如果你有兴趣了解关于这些的更多信息,请访问 Ansible 官方文档


via: https://www.nginx.com/blog/installing-nginx-nginx-plus-ansible/

作者:Kevin Jones 译者:strugglingyouth 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

123
查看其它分页:

发表评论


最新评论

我也要发表评论

来自上海的 Chrome 52.0|Windows 7 用户 2016-9-13 14:47
msg: Error: Package: 1:nginx-1.10.1-1.el7.ngx.x86_64 (nginx)
           Requires: libc.so.6(GLIBC_2.14)(64bit)
Error: Package: 1:nginx-1.10.1-1.el7.ngx.x86_64 (nginx)
           Requires: libpcre.so.1()(64bit)
Error: Package: 1:nginx-1.10.1-1.el7.ngx.x86_64 (nginx)
           Requires: systemd
请问一下是什么原因,如何改错呢?
回复
贵在坚持 [Chrome 42.0|Windows 8.1] 2015-10-9 09:57
Ansible、Saltstack、Puppet   - -
3 回复

热点评论

贵在坚持 [Chrome 42.0|Windows 8.1] 2015-10-9 09:57
Ansible、Saltstack、Puppet   - -
3
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。