19 系统管理与自动化部署案例

在本篇教程中,我们将深入探讨使用 Ansible 进行系统管理与自动化部署的常见用例。正如上一篇中提到的,我们可以通过 Ansible Galaxy 来共享和复用角色,这为我们的自动化流程提供了基础。在这里,我们将基于这些角色创建一些具体的案例,帮助大家更好地理解 Ansible 的使用场景。

案例一:Web 服务器的自动化部署

在现代云计算环境中,快速部署和管理 Web 服务器是非常重要的任务。下面是一个使用 Ansible 自动部署 Nginx Web 服务器的案例。

1. 准备工作

首先,确保你已经安装了 Ansible,并且目标服务器可以通过 SSH 访问。接下来,创建一个 Playbook 文件,例如 deploy_nginx.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
---
- name: Deploy Nginx on Web Server
hosts: webservers
become: yes

tasks:
- name: Update apt cache
apt:
update_cache: yes

- name: Install Nginx
apt:
name: nginx
state: present

- name: Start Nginx Service
service:
name: nginx
state: started
enabled: yes

2. 执行 Playbook

确保在你的 inventory 文件中添加了 webservers 主机组,然后执行以下命令来运行你的 Playbook:

1
ansible-playbook -i inventory deploy_nginx.yml

通过这个案例,你可以看到使用 Ansible 来管理和自动化软件安装是多么简单。运行后,目标服务器上将会安装 Nginx,并且服务将会启动并设置为开机自启。

案例二:用户和权限管理

在多用户环境中,管理用户和权限也是运维中的重要任务。以下是使用 Ansible 管理用户的示例。

1. 创建 Playbook

创建一个 manage_users.yml Playbook 来管理用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
---
- name: Manage Users
hosts: all
become: yes

tasks:
- name: Ensure user 'deployer' exists
user:
name: deployer
state: present
shell: /bin/bash
groups: sudo

- name: Set password for user 'deployer'
user:
name: deployer
password: "$6$rounds=656000$saltsal$hashedpassword" # 请使用 `mkpasswd` 来生成安全的密码

2. 执行 Playbook

同样,确保你的 inventory 文件中包含同一组主机,然后执行 Playbook:

1
ansible-playbook -i inventory manage_users.yml

这个 Playbook 会确保名为 deployer 的用户存在,并加上 sudo 权限。你也可以根据需要添加其他用户和权限管理的逻辑。

案例三:应用程序的自动化部署

在微服务环境下,自动化部署应用程序是提升效率的关键。以下是部署一个简单 Flask 应用的示例。

1. Flask 应用的 Playbook

创建一个 deploy_flask_app.yml Playbook,来部署我们的 Flask 应用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
---
- name: Deploy Flask Application
hosts: webservers
become: yes

tasks:
- name: Install dependencies
apt:
name:
- python3
- python3-pip
state: present

- name: Install Flask
pip:
name: Flask

- name: Copy application code
copy:
src: /path/to/your/flask_app/
dest: /var/www/flask_app/

- name: Create supervisor config
copy:
dest: /etc/supervisor/conf.d/flask_app.conf
content: |
[program:flask_app]
command=python3 /var/www/flask_app/app.py
autostart=true
autorestart=true
stderr_logfile=/var/log/flask_app.err.log
stdout_logfile=/var/log/flask_app.out.log

- name: Start supervisor service
service:
name: supervisor
state: started
enabled: yes

2. 执行 Playbook

运行你的 Playbook:

1
ansible-playbook -i inventory deploy_flask_app.yml

这将自动安装 Flask 及其依赖,并启动 Flask 应用。使用 Supervisor 我们还确保了应用在崩溃时能自动重启。

小结

在本篇教程中,我们探讨了 Ansible 在系统管理与自动化部署中的常见用例。通过上面的案例,我们可以看到 Ansible 如何简化 Web 服务器的部署、用户权限管理以及应用程序的自动化部署。在下一篇教程中,我们将继续探索网络设备的自动化配置,敬请期待。

希望以上内容对你在使用 Ansible 进行系统管理有所帮助!

19 系统管理与自动化部署案例

https://zglg.work/ansible-zero/19/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论