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

农民  论坛元老 | 2025-3-26 10:08:56 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1632|帖子 1632|积分 4896

 服务器清单

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

控制节点(运行 Ansible 的呆板)上安装 Ansible
  1. sudo yum install epel-release -y
  2. sudo yum install ansible -y
复制代码
验证安装:
  1. ansible --version
复制代码

步骤2:配置 Ansible 主机清单

编辑 Ansible 的主机清单文件 /etc/ansible/hosts,添加目标服务器
  1. sudo vim /etc/ansible/hosts
复制代码
添加以下内容:
  1. [webservers]
  2. 192.168.153.221
  3. 192.168.153.222
复制代码
 步骤3:配置 SSH 免密登录

控制节点上生成 SSH 密钥对,(一直回车)
  1. ssh-keygen -t rsa -b 4096
复制代码

将公钥复制到目标服务器:
  1. ssh-copy-id root@192.168.153.221
  2. ssh-copy-id root@192.168.153.222
复制代码
步骤4:创建 Ansible Playbook

创建一个 Playbook 文件 nginx.yml
  1. sudo vim nginx.yml
复制代码
添加以下内容:
  1. ---
  2. - hosts: webservers
  3.   become: yes
  4.   tasks:
  5.     - name: Ensure /opt directory exists
  6.       file:
  7.         path: /opt
  8.         state: directory
  9.     - name: Install dependencies
  10.       yum:
  11.         name:
  12.           - gcc-c++
  13.           - pcre
  14.           - pcre-devel
  15.           - zlib
  16.           - zlib-devel
  17.           - openssl
  18.           - openssl-devel
  19.         state: present
  20.     - name: Download Nginx source code
  21.       get_url:
  22.         url: https://nginx.org/download/nginx-1.26.2.tar.gz
  23.         dest: /opt/nginx-1.26.2.tar.gz
  24.     - name: Extract Nginx source code
  25.       unarchive:
  26.         src: /opt/nginx-1.26.2.tar.gz
  27.         dest: /opt
  28.         remote_src: yes
  29.     - name: Configure Nginx
  30.       command: ./configure --prefix=/usr/local/nginx
  31.       args:
  32.         chdir: /opt/nginx-1.26.2
  33.     - name: Compile Nginx
  34.       command: make
  35.       args:
  36.         chdir: /opt/nginx-1.26.2
  37.     - name: Install Nginx
  38.       command: make install
  39.       args:
  40.         chdir: /opt/nginx-1.26.2
  41.     - name: Start Nginx
  42.       command: /usr/local/nginx/sbin/nginx
  43.     - name: Ensure firewall allows HTTP and HTTPS
  44.       firewalld:
  45.         service: "{{ item }}"
  46.         permanent: yes
  47.         state: enabled
  48.       loop:
  49.         - http
  50.         - https
  51.       notify:
  52.         - Reload firewall
  53.   handlers:
  54.     - name: Reload firewall
  55.       command: firewall-cmd --reload
复制代码
步骤5:运行 Playbook

使用以下下令运行 Playbook:
  1. ansible-playbook nginx.yml
复制代码

 
步骤6:验证安装

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


  • http://192.168.153.221
  • http://192.168.153.222
如果看到 Nginx 的默认接待页面,说明安装乐成。

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

创建一个 Playbook 文件 nginx-systemd.yml
  1. sudo vim nginx-systemd.yml
复制代码
添加以下内容:
  1. ---
  2. - hosts: webservers  # 指定目标主机组
  3.   become: yes        # 使用 root 权限执行任务
  4.   tasks:             # 定义任务列表
  5.     - name: Create Nginx systemd service file
  6.       copy:
  7.         dest: /etc/systemd/system/nginx.service
  8.         content: |
  9.           [Unit]
  10.           Description=The nginx HTTP and reverse proxy server
  11.           After=network.target
  12.           [Service]
  13.           Type=forking
  14.           ExecStart=/usr/local/nginx/sbin/nginx
  15.           ExecReload=/usr/local/nginx/sbin/nginx -s reload
  16.           ExecStop=/usr/local/nginx/sbin/nginx -s quit
  17.           PrivateTmp=true
  18.           [Install]
  19.           WantedBy=multi-user.target
  20.     - name: Reload systemd daemon
  21.       command: systemctl daemon-reload
  22.     - name: Enable and start Nginx service
  23.       service:
  24.         name: nginx
  25.         state: started
  26.         enabled: yes
复制代码
运行 Playbook:
  1. ansible-playbook nginx-systemd.yml
复制代码


验证:
  1. systemctl status nginx
复制代码

systemd管理下令
  1. # 重新加载 systemd 管理器配置,以便使新的服务文件或配置变更生效
  2. sudo systemctl daemon-reload
  3. # 设置 Nginx 服务在系统启动时自动启动
  4. sudo systemctl enable nginx
  5. # 启动 Nginx 服务
  6. sudo systemctl start nginx
  7. # 查看 Nginx 服务的当前状态(是否运行中)
  8. sudo systemctl status nginx
  9. #重启Nginx 服务
  10. sudo systemctl restart nginx
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农民

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表