ansible远程部署httpd服务
时间: 2023-12-22 16:29:25 浏览: 103
ant部署远程服务器
4星 · 用户满意度95%
以下是使用Ansible远程部署httpd服务的步骤:
1. 确保已经安装了Ansible,并且配置了各节点之间的互信关系。
2. 创建一个Ansible playbook文件,例如`deploy_httpd.yml`,并在其中定义任务和角色。
3. 在playbook中定义主节点和被控节点的组,以及相关的变量。例如:
```yaml
---
- name: Deploy httpd
hosts: webservers
become: yes
vars:
httpd_port: 99
httpd_root: /var/www
httpd_domain: "{{ ansible_host }}"
httpd_user: apache
roles:
- httpd
```
4. 创建一个Ansible角色,例如`httpd`,并在其中定义任务和模板文件。
5. 在角色的`tasks`目录下创建一个`main.yml`文件,并在其中定义任务。例如:
```yaml
---
- name: Install httpd
yum:
name: httpd
state: present
- name: Configure httpd
template:
src: httpd.conf.j2
dest: /etc/httpd/conf/httpd.conf
notify: Restart httpd
- name: Deploy index.html
template:
src: index.html.j2
dest: "{{ httpd_root }}/index.html"
- name: Start httpd
service:
name: httpd
state: started
enabled: yes
- name: Check httpd status
uri:
url: "http://{{ httpd_domain }}:{{ httpd_port }}"
return_content: yes
register: httpd_status
failed_when: httpd_status.status != 200
```
6. 在角色的`templates`目录下创建一个`httpd.conf.j2`文件,并在其中定义httpd的配置。例如:
```apacheconf
Listen {{ httpd_port }}
DocumentRoot "{{ httpd_root }}"
<Directory "{{ httpd_root }}">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
```
7. 在角色的`templates`目录下创建一个`index.html.j2`文件,并在其中定义测试页面的内容。例如:
```html
<html>
<head>
<title>Test Page</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
```
8. 运行Ansible playbook来执行部署任务。例如:
```shell
ansible-playbook deploy_httpd.yml
```
这将在主节点上远程执行部署任务,并将httpd服务安装在被控节点上。
9. 检查部署是否成功。可以通过浏览器访问被控节点的IP地址,加上指定的端口号(例如99),来查看测试页面是否正常显示。
阅读全文