anisble-playbook编译安装nginx
时间: 2023-12-30 18:02:42 浏览: 80
Ansible playbook实战自动化安装nginx所需的yml文件
以下是一个简单的Ansible Playbook,用于在目标主机上编译和安装Nginx:
```
---
- name: Install Nginx
hosts: webserver
become: true
vars:
nginx_version: 1.18.0
tasks:
- name: Install prerequisites
apt:
name: [build-essential, libpcre3-dev, libssl-dev, zlib1g-dev]
state: present
- name: Download Nginx source
get_url:
url: "http://nginx.org/download/nginx-{{ nginx_version }}.tar.gz"
dest: "/tmp/nginx-{{ nginx_version }}.tar.gz"
- name: Extract Nginx source
unarchive:
src: "/tmp/nginx-{{ nginx_version }}.tar.gz"
dest: "/tmp"
remote_src: true
- name: Configure Nginx
shell: "./configure --prefix=/usr/local/nginx --with-http_ssl_module"
args:
chdir: "/tmp/nginx-{{ nginx_version }}"
- name: Build Nginx
shell: "make && make install"
args:
chdir: "/tmp/nginx-{{ nginx_version }}"
- name: Start Nginx
service:
name: nginx
state: started
```
在上面的Playbook中,我们首先定义了一个变量 `nginx_version`,用于指定要安装的Nginx版本。然后,我们使用 `apt`模块安装了编译Nginx所需的依赖项。
接下来,我们使用 `get_url`模块从Nginx官网下载了源代码,并使用`unarchive`模块将其解压到 `/tmp`目录中。然后,我们使用 `shell`模块配置和编译了Nginx,并使用`service`模块启动了Nginx服务。
最后,我们可以在命令行中运行以下命令来执行Playbook:
```
ansible-playbook install-nginx.yml
```
注意,我们假设已经在Ansible中定义了一个名为 `webserver` 的主机组,其中包含要安装Nginx的目标主机。在实际应用中,您可能需要根据自己的环境进行修改。
阅读全文