农民 发表于 2025-3-26 10:08:56

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

 服务器清单

服务器 IP操纵系统192.168.153.221Anolis OS 7.9192.168.153.222Anolis OS 7.9  步骤1 安装 Ansible 

在控制节点(运行 Ansible 的呆板)上安装 Ansible
sudo yum install epel-release -y
sudo yum install ansible -y 验证安装:
ansible --version https://i-blog.csdnimg.cn/direct/725843d1d58843b2aa7ed862713f32e6.png
步骤2:配置 Ansible 主机清单

编辑 Ansible 的主机清单文件 /etc/ansible/hosts,添加目标服务器
sudo vim /etc/ansible/hosts 添加以下内容:

192.168.153.221
192.168.153.222  步骤3:配置 SSH 免密登录

在控制节点上生成 SSH 密钥对,(一直回车)
ssh-keygen -t rsa -b 4096 https://i-blog.csdnimg.cn/direct/72019a6130624222be6b72859d2d14df.png
将公钥复制到目标服务器:
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 https://i-blog.csdnimg.cn/direct/211b0fd5f4244f16b6b6ea6c38c76890.png
https://i-blog.csdnimg.cn/direct/8a93b095b3334ffea86d2641b796676d.png 
步骤6:验证安装

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


[*] http://192.168.153.221
[*] http://192.168.153.222
如果看到 Nginx 的默认接待页面,说明安装乐成。
https://i-blog.csdnimg.cn/direct/9016020f416f4535b2fb12b689383820.png
步骤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: |
         
          Description=The nginx HTTP and reverse proxy server
          After=network.target

         
          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

         
          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 https://i-blog.csdnimg.cn/direct/e84982bcf0774eb181579d76b94da537.png
https://i-blog.csdnimg.cn/direct/5241531ec96d4e3090a9450b6b930f4e.png
验证:
systemctl status nginx https://i-blog.csdnimg.cn/direct/37f1b53c081646ab835422b84b70024a.png
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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 使用 Ansible 通过源码编译安装 Nginx 的完备步骤。