使用 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]