一、准备工作
-
安装Ansible (如果尚未安装):
在Ansible控制节点(通常是你的本地机器或CI/CD服务器)上安装Ansible。
bashsudo yum install epel-release sudo yum install ansible
-
设置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
-
创建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
-
运行Playbook:
使用
ansible-playbook
命令运行编写的playbook。bashansible-playbook nginx_install.yml
四、注意点
- 上述playbook中,首先添加EPEL仓库,因为Nginx的官方仓库并不一定包含在CentOS的基础仓库中。
- Nginx的官方仓库URL应根据实际版本进行更新。
- 若使用的是CentOS Stream,对应的Nginx仓库URL也会不同。
- 如果已存在Nginx官方仓库或其他可用的包含Nginx的第三方仓库,可以跳过添加仓库的部分。
- 如果目标主机对SSH访问有限制,需确保Ansible可以通过密钥对无密码登录或者已配置了适当的SSH凭证。
以上步骤适用于通过Ansible从官方或第三方仓库安装Nginx的情况。如果您希望从源码编译安装Nginx,那么playbook将包括下载源码、编译和安装的相关任务。