使用ansible在云服务器上安装、启动nginx

最近在练习使用ansible,参照例子在云服务器(aliyun)上安装、启动nginx:前期准备:
1. 在我的macbook上安装ansible
brew install ansible
2. 创建用于保存ansible playbook的文件夹
mkdir ~/playbooks
3. 创建一个安装nginx所需的playbook目录
mkdir -p ansible-nginx/tasks/
touch ansible-nginx/deploy.yml
touch ansible-nginx/tasks/install_nginx.yml
4. 编辑主部署文件deploy.yml

  1. # ./ansible-nginx/deploy.yml
  2. - hosts: nginx
  3. tasks:
  4. - include: 'tasks/install_nginx.yml’

5. 配置安装nginx的真正的部署文件 install_nginx.yml

 

  1. # ./ansible-nginx/tasks/install_nginx.yml
  2. - name: NGINX | Installing NGINX repo rpm
  3. yum:
  4. name: http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  5. - name: NGINX | Installing NGINX
  6. yum:
  7. name: nginx
  8. state: latest
  9. - name: NGINX | Starting NGINX
  10. service:
  11. name: nginx
  12. state: started

6. 配置hosts文件,告诉ansible,我的云服务器在那里
cat /usr/local/etc/ansible/hosts
# /usr/local/ansible/hosts

 

[nginx]
aliyun
7. 执行ansible
sudo ansible-playbook --ask-pass ansible-nginx/deploy.yml

注意点: 测试目的,所以使用口令而不是private key连接云服务器,可能需要修改/etc/ssh/ssh_config 中的StrictHostKeyChecking为no
在我的centos 6环境中,启动nginx会报错:
nginx: [emerg] open() "/etc/nginx/fastcgi.conf" failed (2: No such file or directory) in /etc/nginx/nginx.conf:73
只需要把/etc/nginx/fastcgi_params copy一份起名叫fastcgi.conf即可(我操作时是创建了一个link)。

Leave Comment