自动化运维工具Ansible使用(一)

简介

Ansible是一个使用Python语言的自动化运维工具。集合了众多运维工具,例如fabric, saltstack等的优点,实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。

Ansible可以以两种方式运行:ad-hoc,playbooks。

  • ad-hoc(命令)模式和fabric非常类似,批量远程执行SSH命令。一些简单的命令可以用这个方式进行分发。例如:
ansible all -a 'date'

这条命令将在所有配置了的服务器上执行date命令并返回命令的返回值。

ad-hoc命令的典型格式是:

ansible hosts -m module -a 'command'
  • playbooks(剧本)模式则可以执行复杂的工作。将需要的任务用yaml格式写在文件中,然后执行。例如:
# test.yml
---
- hosts: 123.123.123.123
  remote_user: root
  tasks:
    - name: test connection
      ping:
      remote_user: root

然后执行:

ansible-playbook test.yml -f 10

即在所有服务器上执行ping这个操作。(“-f 10”表示并发10)

请注意,Ansible的命令分发基于SSH链接,所以虽然是C/S架构,但并不需要安装客户端。另外Ansible的分发可以并行执行。

安装

在Ubuntu上可以使用两种方式安装:

  • pip(不建议安装在virtualenv虚拟环境中):
sudo pip install ansible
  • apt
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible

准备工作

为了使Ansible能够更加安全方便的执行,将Server的SSH Public Key添加到Clients的Authorized-Keys文件中。使得从Server端使用SSH登录到Client端时无需使用明文密码。这属于运维的基础知识,这里就不仔细说明了。

参考资料:Ansible Documentation

发表评论

电子邮件地址不会被公开。 必填项已用*标注