playbook - 部署nginx & role

该博客介绍了如何使用Ansible自动化部署Nginx,包括复制配置文件、配置Nginx源、安装Nginx、设置配置文件以及检查语法。通过创建一个名为`webservers`的角色,将任务和处理程序组织在相应的目录中,然后使用`deploy-nginx.yml` playbook执行部署。
摘要由CSDN通过智能技术生成

准备:新建文件夹nginx-auto

1:复制源机nginx主配置文件

cp /etc/nginx/nginx.conf ./nginx-auto/nginx.conf.j2

2:复制源机nginx子配置文件

cp /etc/nginx/conf.d/default.conf ./nginx-auto/  #文件名看实际文件名

 3:配置nginx源

# cat ./nginx-auto/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

部署文件:vim ./nginx-auto/ngimx-auto.yaml

- name: 自动部署nginx
  hosts: web
  gather_facts: no
  vars:
    main: nginx.conf.j2
    sub: default.conf
  tasks: 
    - name: 传输库
      copy: src=nginx.repo dest=/etc/yum.repo.d/
    - name: 安装nginx
      yum: name=nginx
    - name: 设置主配置文件
      template:
        src: "{{ main }}" 
        dest: /etc/nginx/nginx.conf
      tags: update
      notify: reload nginx
    - name: 设置子配置文件
      copy: 
        src: "{{ sub }}"
        dest: /etc/nginx/conf.d
      tags: update
      notify: reload nginx
    - name: 检查nginx语法
      shell: /usr/sbin/nginx -t
      register: nginxsyntax
      tags: update
    - name: 返回值
      debug:
        var: nginxsyntax
      tags: update
  handlers:
    - name: reload nginx
      when:
        - nginxsyntax.rc == 0
      systemd: name=nginx state=reloaded

角色:创建role目录

# ansible-galaxy init webserves

# tree webserves/
webserves/
├── defaults
│   └── main.yml
├── files
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── README.md
├── tasks
│   └── main.yml
├── templates
├── tests
│   ├── inventory
│   └── test.yml
└── vars

tasks   -包含角色要执行的任务的主要列表。
handlers   -包含处理程序,此角色甚至该角色之外的任何地方都可以使用这些处理程序。
defaults  -角色的默认变量。
vars  -角色的其他变量。
files   -包含可以通过此角色部署的文件。
templates  -包含可以通过此角色部署的模板。
meta  -为此角色定义一些元数据。

*************

把./nginx-auto/ngimx-auto.yaml  内的内容及ngin-auto文件内的文件 按上述分类拷贝到webserves里,例如:

templates 文件夹存放模板

存放 nginx.conf.j2 模板


vars 文件夹中的 main.yml 文件

main: nginx.conf.j2
sub: default.conf

使用方法:

新建文件:deploy-nginx.yml   #文件需和webserves目录同级目录

- name: use  role
  hosts: webservers
  roles:
    - webservers



执行:

ansible-playbook  deploy-nginx.yml 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值