如何在Linux系统中使用Ansible进行自动化部署
- Ansible简介
- 安装Ansible
- 在Debian/Ubuntu系统中安装
- 在CentOS/RHEL系统中安装
- Ansible的基本概念
- Inventory文件
- Playbooks
- Modules
- 创建Inventory文件
- 编写第一个Playbook
- 创建Playbook文件
- 运行Playbook
- 使用Handlers
- 编写包含Handler的Playbook
- 使用Variables
- 在Playbook中使用Variables
- 使用Templates
- 创建Jinja2 Template文件
- 在Playbook中使用Template模块
- 使用Roles
- 创建Role目录结构
- 在Playbook中使用Role
- 使用Modules
- 使用Modules
- 使用Vault加密敏感数据
- 创建Vault文件
- 加密Vault文件
- Ansible的高级用法
- 使用Modules加载器
- 使用Plugins
- 总结
在Linux系统中,Ansible是一个简单但强大的自动化工具,用于配置管理和应用程序部署。本文将详细介绍如何在Linux系统中使用Ansible进行自动化部署。
Ansible简介
安装Ansible
在Debian/Ubuntu系统中安装
apt-get
来安装Ansible。
sudo apt update
sudo apt install ansible
在CentOS/RHEL系统中安装
yum
来安装Ansible。
sudo yum install epel-release
sudo yum install ansible
Ansible的基本概念
Inventory文件
Playbooks
Modules
创建Inventory文件
[webservers]
192.168.1.100
[databases]
192.168.1.101
编写第一个Playbook
创建Playbook文件
install_apache.yml
的文件,并编写Playbook内容。
---
- hosts: webservers
tasks:
- name: Install Apache
apt:
name: apache2
state: present
运行Playbook
ansible-playbook
命令来运行Playbook。
ansible-playbook install_apache.yml
使用Handlers
编写包含Handler的Playbook
---
- hosts: webservers
tasks:
- name: Install Apache
apt:
name: apache2
state: present
notify:
- restart apache
handlers:
- name: restart apache
service:
name: apache2
state: restarted
使用Variables
在Playbook中使用Variables
---
- hosts: webservers
vars:
http_port: 80
tasks:
- name: Install Apache
apt:
name: apache2
state: present
使用Templates
创建Jinja2 Template文件
httpd.conf.j2
的模板文件。
Listen {{ http_port }}
在Playbook中使用Template模块
- name: Copy template
template:
src: httpd.conf.j2
dest: /etc/httpd/conf/httpd.conf
使用Roles
创建Role目录结构
roles/
apache/
tasks/
main.yml
files/
templates/
httpd.conf.j2
vars/
main.yml
在Playbook中使用Role
- hosts: webservers
roles:
- { role: apache }
使用Modules
使用Modules
- name: Start a service
service:
name: sshd
state: started
使用Vault加密敏感数据
创建Vault文件
database_password: secret
加密Vault文件
ansible-vault encrypt
命令来加密Vault文件。
ansible-vault encrypt vault.yml
Ansible的高级用法
使用Modules加载器
使用Plugins
总结
使用Ansible可以极大地提高工作效率,简化配置管理的过程。