ansible自动化部署

安装

Ansible可通过 “pip” 安装(安装和管理Python包的工具),若你还没有安装 pip,可执行如下命令安装:

1
$ sudo easy_install pip

然后安装Ansible:

1
$ sudo pip install ansible

如果你是在 OS X Mavericks 上安装,编译器可能或告警或报错,可通过如下设置避免这种情况:

1
$ sudo CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install ansible

使用 virtualenv 的读者可通过 virtualenv 安装 Ansible, 然而我们建议不用这样做,直接在全局安装 Ansible.不要使用 easy_install 直接安装 ansible.

配置hosts

修改/etc/ansible/hosts 全局hosts文件,没有的话自己创建

1
$ vim /etc/ansible/hosts
1
2
3
4
5
6
[localhost] # 如果服务器使用密码登录就用这个方式保存密码,避免每次输入
127.0.0.1 ansible_ssh_pass=your_pass ansible_ssh_user=your_name

[prod] # 如果服务器使用sshkey登陆(推荐使用)
prod.server.org ansible_ssh_user=your_name ansible_ssh_private_key_file=key_path

具体的是 prod.server.org是IP, your_pass是服务器的密码,your_name 是服务器的名字, key_path是用key登录.

第一条命令

首先执行ping,看是否可以连接上服务器

1
2
3
4
5
6
7
8
9
10
11
$ ansible all -m ping

127.0.0.1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
prod.server.org | SUCCESS => {
"changed": false,
"ping": "pong"
}

得到如上样式结果即为正确,另外执行 ansible prod -m ping 可以针对某一个服务器
组进行操作

这时候说明你的ansible已经跑通,下面可以进行其他操作