Ansible快速教程
Ansible简介
Ansible是一个类似Chef, Puppet 或 Salt 的配置管理管理工具,并且非常容易上手 - 因为其只依赖服务器上运行SSH服务,通过SSH连接服务器并运行配置任务。
Ansible非常适合将bash脚本转换成Ansible任务,并且由于其基于SSH,所以很容易检查运行结果。Ansible适合重复以及复杂的配置脚本,并在运行前会基于Facts,也就是系统和环境信息。
Ansible使用这些环境facts来检查状态以及确定是否需要变更,这样可以确保服务器最终一致性,即可以一遍遍运行Ansible得到相同的结果。
Ansible安装
请参考 官方安装手册 安装,例如,Ubuntu安装:
管理服务器
Ansible默认使用inventory文件定义被管理的服务器列表,安装后的案例文件是 /etc/ansible/hosts
可以将这个文件移动后使用自己定义的文件
创建自己的 /etc/ansible/hosts
,例如定义 web
标签的服务器组
要定义动态清单可以参考 creating a dynamic inventory
基础:运行命令
可以定义使用密码登录服务器并使用账号 vagrant
(这里的案例)
注释:
all
清单文件中所有定义主机-m ping
使用ping模块-s
使用sudo
来运行命令-k
询问密码而不是使用用户密钥认证-u vagrant
使用vagrant
账号登录远程服务器
模块
Ansible使用模块来完成任务,模块可以用来安装软件,复制文件,使用模版以及更多任务。
模块可以使用相关的Facts
以便决策是否采取动作。
如果不使用模块,则可以使用shell
命令方式:
虽然可以使用shell,但是建议使用模块完成任务,模块可以确保一致性。
基本playbook
Playbooks可以运行多个任务并提供更多高级功能。
在Ansible中Playbooks和Roles都使用Yaml
创建 nginx.yml
执行
也可以使用如下方法通过vagrant
账号登录远程服务器并sudo执行
Handlers
Handler(处理者)类似Task,但是是通过其他Task调用的。你可以将Handler视为一个事件系统的一部分。一个Handler会在被其监听的事件调用时执行一个动作。
这个"第二个"动作在需要运行一个任务之后调用非常合适,例如在安装完成软件后启动一个新的服务或者在配置修改以后重新加载服务:
参考
Last updated