Ansible角色:安装nginx

Ansible角色:安装nginx

CentOS7安装nginx角色


一、版本要求

被控节点:CentOS7
控制节点:Ansible2.9


二、如何使用

1、进入Ansible默认角色目录

cd /etc/ansible/roles

如果在ansible.cfg中更改了默认的角色目录,根据你自己角色目录进行更改


2、创建一个角色

ansible-galaxy init nginx_install

3、下载

nginx_install.tar.gz


4、解压

tar zxvf nginx_install.tar.gz

5、主机清单

vim /etc/ansible/hosts

ansible_ssh_host 填写被控主机地址
ansible_ssh_user 填写被控主机用户
ansible_ssh_pass 填写被控主机登录密码

[CentOS]
host_A ansible_ssh_host= 

[CentOS:vars]
ansible_ssh_user= 
ansible_ssh_pass= 
ansible_ssh_port= 22

三、实例剧本

1、主剧本

---
- hosts: CentOS
  remote_user: root
  roles:
    - nginx_install

四、角色详解

1、角色目录

defaults
  └─main.yml  
files
  └─nginx-1.12.0.tar.gz
handlers
meta
tasks
  ├─free_ports.yml
  ├─install.yml
  └─main.yml
templates
tests
  └─test.yml
vars


2、任务

主任务
main.yml

---
# tasks file for nginx_install
- include: install.yml
- include: free_ports.yml

安装任务
install.yml

---
  #安装依赖包任务
  - name: install dependency packages
    yum:
      name: "{{ packages }}"
      state: present

  #创建临时文件夹任务
  - name: create nginx folder
    file:
      path: "{{ temp_nginx_path }}"
      state: directory

  #解压缩安装包文件任务
  - name: unzip nginx install package 
    unarchive: 
      src: "{{ nginx_install_file }}"
      dest: "{{ temp_nginx_path }}"

  #在安装之前配置nginx,拷贝配置文件模板任务
  - name: configure nginx
    template:
      src: nginx.conf.j2
      dest: "{{pre_nginx_conf}}"

  #执行配置nginx文件任务
  - name: configure nginx
    shell: ./configure chdir="{{temp_nginx_install_path}}"

  #源码安装nginx任务
  - name: make install
    shell: make & make install chdir="{{temp_nginx_install_path}}"
    
  #启动nginx任务
  - name: start the nginx
    shell: "{{nginx_path}}"

开放端口任务
free_ports.yml.yml

---
  #开放80端口任务
  - name: firewalld free http port
    firewalld:
      port: 80/tcp
      permanent: yes
      state: enabled

  #开放443端口任务
  - name: firewalld free https port
    firewalld:
      port: 443/tcp
      permanent: yes
      state: enabled
      
  #更改完防火墙配置,重启防火墙任务
  - name: restart firewall
    service:
      name: firewalld
      state: restarted

3、变量

---
# defaults file for nginx_install
#nginx版本
nginx_version: 1.12.0
#nginx安装压缩包
nginx_install_file: nginx-{{nginx_version}}.tar.gz
#压缩包下载地址
nginx_download_url: https://nginx.org/download/{{nginx_install_file}}
#依赖
packages: 
  - gcc-c++
  - pcre 
  - pcre-devel
  - zlib 
  - zlib-devel
  - openssl 
  - openssl-devel
#临时文件路径
temp_nginx_path: /etc/temp/nginx
#临时安装路径
temp_nginx_install_path: /etc/temp/nginx/nginx-{{nginx_version}}
#安装前配置文件
pre_nginx_conf: /etc/temp/nginx/nginx-{{nginx_version}}/conf/nginx.conf
#nginx启动目录
nginx_path: /usr/local/nginx/sbin/nginx
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值