圣凤凌霜 发表于 2015-11-25 15:47:58

ansible自动化运维工具的安装与使用

  运行环境

centOS6.6
ansible
  ansible的功能还是比较多的,博主只用它在集群上进行批量部署软件和维护的功能,其他不多做研究,有需要的话这篇文章会慢慢补充。
ansible特点

[*]轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
[*]批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
[*]使用python编写,维护更简单,ruby语法过于复杂;
[*]支持sudo。
安装

yum install ansible


使用

[*]  配置ssh

ansible是通过基于ssh实现的,我们先配置ssh无密码登录

ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub user@dp0655
ssh-copy-id -i ~/.ssh/id_rsa.pub user@dp0656
ssh-copy-id -i ~/.ssh/id_rsa.pub user@dp0657
[*]  主机组定义

这里定义了一个spark_test组

vim /etc/ansible/hosts

dp0655
dp0656
dp0657
[*]  连通测试

ansible all的意思是对/etc/ansible/hosts中的所有主机进行操作,我这只对spark_cluster组进行操作。

#查看spark_cluster组中的主机
ansible spark_cluster --list-hosts
dp0655
dp0656
dp0657
#测试是否连通
ansible spark_cluster -m ping
dp0657 | success >> {
"changed": false,
"ping": "pong"
}
dp0656 | success >> {
"changed": false,
"ping": "pong"
}
dp0655 | success >> {
"changed": false,
"ping": "pong"
}
常用操作

[*]  用户和权限

-u 指定运行的用户(默认为root)

-s 使用sudo权限

ansible spark_cluster -a "mkdir /usr/xx/xx" -s -u userName
[*]  copy

将本地文件/文件夹发送到远程主机,ansible的copy模块是围绕rsync的包装,所以它是增量而不是全量的拷贝。

参数说明:

src 本地文件/文件夹位置

dest 发送到远程主机的位置

owner(可选) 所属用户

group(可选) 所属用户组

mode(可选) 权限

  将本地文件/etc/ansible/ansible.cfg复制到远程服务器


ansible spark_cluster -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=admin group=admin mode=0644"

[*]  批量执行脚本

在远程批量执行本地脚本

ansible spark_cluster -m script -a "hello.sh"
  ansible的中文操作手册

http://www.simlinux.com/books/Ansible-notes.pdf
页: [1]
查看完整版本: ansible自动化运维工具的安装与使用