在CentOS 7上使用Ansible安装Nginx

一、准备工作

  1. 安装Ansible (如果尚未安装):

    在Ansible控制节点(通常是你的本地机器或CI/CD服务器)上安装Ansible。

    bash 复制代码
    sudo yum install epel-release
    sudo yum install ansible
  2. 设置Inventory:

    编辑或创建Ansible的inventory文件,列出你想在其上安装Nginx的所有CentOS 7目标主机。

    ini 复制代码
    # inventory.ini
    [webservers]
    server1.example.com
    server2.example.com
    
    [webservers:vars]
    ansible_python_interpreter=/usr/bin/python3  # 如果系统默认不是Python 3

二、编写Playbook

  1. 创建Playbook:

    创建一个Ansible playbook,用来安装Nginx及其依赖项。

    yaml 复制代码
    # nginx_install.yml
    ---
    - name: Install Nginx on CentOS 7
      hosts: webservers
      become: yes
    
      tasks:
        - name: Install EPEL repository if not present
          package:
            name: epel-release
            state: present
    
        - name: Install necessary dependencies
          package:
            name:
              - gcc
              - gcc-c++
              - make
              - pcre-devel
              - zlib-devel
              - openssl-devel
            state: present
    
        - name: Add the Nginx repository
          yum_repository:
            name: nginx
            description: Nginx Repository
            baseurl: https://nginx.org/packages/centos/$releasever/$basearch/
            gpgcheck: no  # 或者提供GPG key来验证包签名
    
        - name: Install Nginx
          package:
            name: nginx
            state: latest
    
        - name: Start and enable Nginx service
          service:
            name: nginx
            state: started
            enabled: yes

三、执行Playbook

  1. 运行Playbook:

    使用ansible-playbook命令运行编写的playbook。

    bash 复制代码
    ansible-playbook nginx_install.yml

四、注意点

  • 上述playbook中,首先添加EPEL仓库,因为Nginx的官方仓库并不一定包含在CentOS的基础仓库中。
  • Nginx的官方仓库URL应根据实际版本进行更新。
  • 若使用的是CentOS Stream,对应的Nginx仓库URL也会不同。
  • 如果已存在Nginx官方仓库或其他可用的包含Nginx的第三方仓库,可以跳过添加仓库的部分。
  • 如果目标主机对SSH访问有限制,需确保Ansible可以通过密钥对无密码登录或者已配置了适当的SSH凭证。

以上步骤适用于通过Ansible从官方或第三方仓库安装Nginx的情况。如果您希望从源码编译安装Nginx,那么playbook将包括下载源码、编译和安装的相关任务。

相关推荐
承渊政道2 小时前
CentOS 7单机部署Elasticsearch 7.17.29:从启动报错、CRUD验证到固定公网地址的完整过程
linux·elasticsearch·centos·内网穿透·cpolar·单机部署
xiaoqiMikko14 小时前
Linux 实战(七):useradd、sudoers、umask、SGID、软链 —— 三台真机实测
linux·centos
Mikko717 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
光依旧17 小时前
发版就掉请求?Spring Boot优雅停机的四步
运维·spring boot·nginx·高可用·优雅停机·mcp server
笔墨登场说说2 天前
centos 8 使用 kafka_2.13-4.3.1.tgz 安装kafka
linux·kafka·centos
xiaoqiMikko2 天前
Linux 实战(五):DNS、hosts、CLOSE-WAIT、SSH 权限与改端口 —— 三台真机实测
linux·centos
Mikko72 天前
Linux 磁盘满了但 du 找不到?LVM 扩容 df 不变?fstab 写错开不了机?三台真机实测磁盘排查
linux·运维·centos
xiaoqiMikko2 天前
Linux 实战(三):服务起不来、定时任务不执行 —— CentOS 7 / Rocky 9 / Ubuntu 24.04 实测差异
linux·centos
Lvan的前端笔记2 天前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
姜鱼问生2 天前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存