当前位置: 首页 > article >正文

使用 Ansible 通过源码编译安装 Nginx 的完整步骤。

 服务器清单

服务器 IP操作系统
192.168.153.221Anolis OS 7.9
192.168.153.222Anolis OS 7.9

 步骤1 安装 Ansible 

控制节点(运行 Ansible 的机器)上安装 Ansible

sudo yum install epel-release -y
sudo yum install ansible -y

验证安装:

ansible --version

步骤2:配置 Ansible 主机清单

编辑 Ansible 的主机清单文件 /etc/ansible/hosts,添加目标服务器

sudo vim /etc/ansible/hosts

添加以下内容:

[webservers]
192.168.153.221
192.168.153.222

 步骤3:配置 SSH 免密登录

控制节点上生成 SSH 密钥对,(一直回车)

ssh-keygen -t rsa -b 4096

将公钥复制到目标服务器:

ssh-copy-id root@192.168.153.221
ssh-copy-id root@192.168.153.222

步骤4:创建 Ansible Playbook

创建一个 Playbook 文件 nginx.yml

sudo vim nginx.yml

添加以下内容:

---
- hosts: webservers
  become: yes
  tasks:
    - name: Ensure /opt directory exists
      file:
        path: /opt
        state: directory

    - name: Install dependencies
      yum:
        name:
          - gcc-c++
          - pcre
          - pcre-devel
          - zlib
          - zlib-devel
          - openssl
          - openssl-devel
        state: present

    - name: Download Nginx source code
      get_url:
        url: https://nginx.org/download/nginx-1.26.2.tar.gz
        dest: /opt/nginx-1.26.2.tar.gz

    - name: Extract Nginx source code
      unarchive:
        src: /opt/nginx-1.26.2.tar.gz
        dest: /opt
        remote_src: yes

    - name: Configure Nginx
      command: ./configure --prefix=/usr/local/nginx
      args:
        chdir: /opt/nginx-1.26.2

    - name: Compile Nginx
      command: make
      args:
        chdir: /opt/nginx-1.26.2

    - name: Install Nginx
      command: make install
      args:
        chdir: /opt/nginx-1.26.2

    - name: Start Nginx
      command: /usr/local/nginx/sbin/nginx

    - name: Ensure firewall allows HTTP and HTTPS
      firewalld:
        service: "{{ item }}"
        permanent: yes
        state: enabled
      loop:
        - http
        - https
      notify:
        - Reload firewall

  handlers:
    - name: Reload firewall
      command: firewall-cmd --reload

步骤5:运行 Playbook

使用以下命令运行 Playbook:

ansible-playbook nginx.yml

 

步骤6:验证安装

在浏览器中访问以下地址,验证 Nginx 是否正常运行:

  • http://192.168.153.221

  • http://192.168.153.222

如果看到 Nginx 的默认欢迎页面,说明安装成功。

步骤7:把 Nginx 服务添加到systemd管理

创建一个 Playbook 文件 nginx-systemd.yml

sudo vim nginx-systemd.yml

添加以下内容:

---
- hosts: webservers  # 指定目标主机组
  become: yes        # 使用 root 权限执行任务
  tasks:             # 定义任务列表
    - name: Create Nginx systemd service file
      copy:
        dest: /etc/systemd/system/nginx.service
        content: |
          [Unit]
          Description=The nginx HTTP and reverse proxy server
          After=network.target

          [Service]
          Type=forking
          ExecStart=/usr/local/nginx/sbin/nginx
          ExecReload=/usr/local/nginx/sbin/nginx -s reload
          ExecStop=/usr/local/nginx/sbin/nginx -s quit
          PrivateTmp=true

          [Install]
          WantedBy=multi-user.target

    - name: Reload systemd daemon
      command: systemctl daemon-reload

    - name: Enable and start Nginx service
      service:
        name: nginx
        state: started
        enabled: yes

运行 Playbook:

ansible-playbook nginx-systemd.yml

验证:

systemctl status nginx

systemd管理命令

# 重新加载 systemd 管理器配置,以便使新的服务文件或配置变更生效
sudo systemctl daemon-reload
# 设置 Nginx 服务在系统启动时自动启动
sudo systemctl enable nginx
# 启动 Nginx 服务
sudo systemctl start nginx
# 查看 Nginx 服务的当前状态(是否运行中)
sudo systemctl status nginx
#重启Nginx 服务
sudo systemctl restart nginx

http://www.kler.cn/a/600200.html

相关文章:

  • CSS网格布局Grid
  • C# WinForms 中的回调:从性能到技术层面的全面解析
  • Netty源码—3.Reactor线程模型四
  • 【Qt】QDialog对话框
  • SQL语句---DDL
  • 买卖股票的最佳时机 IV (leetcode 188)
  • 基于SpringBoot的汽车租赁系统
  • 消息队列ActiveMQ、RabbitMQ、RocketMQ、Kafka对比分析和选型
  • 第八:在Go语言项目中使用Zap日志库
  • vue js给元素动态添加动画样式, 改变背景色
  • 单片机 - RAM 与内存、ROM 与硬盘 之间的详细对比总结
  • 【后端开发面试题】每日 3 题(二十)
  • 计算机网络 - OSI 七层模型
  • ffmpeg+QOpenGLWidget显示视频
  • 基于深度学习的自动驾驶目标检测系统
  • 带你了解Java无锁并发CAS
  • AWS AI认证考试中经常提及几个重要的工具介绍
  • EasyRTC轻量级Webrtc音视频通话SDK,助力带屏IPC在嵌入式设备中的应用
  • 【大模型微调(Fine-tuning)完整流程、调优思路】
  • 响应式 Web 设计:HTML 与 CSS 协同学习的进度(一)