(2018年12月26日)

1. 安装

ansible是Python写的通过ssh免登陆的方式来管理机器:http://www.ansible.com.cn 官方的安装文档

1. debian下安装

直接apt install ansible安装2.2版本。新版本要这样安装:

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main追加到文件/etc/apt/sources.list,然后执行:

apt-get install dirmngr --install-recommends
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
apt-get update
apt-get install ansible

2. centos下安装

yum install ansible # 目前安装是2.4版本

目前公司使用2.4版本ansible,所以暂不实践2.7版本的安装。

3. 其它

这里还有一个portable的ansible:https://github.com/ownport/portable-ansible (未试用)

目前用ansible来对一批机器执行指定的指令,还有用playbook来固化一些机器初始化。执行:ansible-playbook ****.yaml

2. 常用操作

将要管理的主机放到/etc/ansible/hosts,可以分组也可以不分组。ssh免登陆中有个校验known_host,目的是为了安全,如果要取消掉这个检查,则配置/etc/ansible/ansible.cfg配置中host_key_checking = False

然后就可以执行一些命令了

ansible all -m ping # 测试机器ping得通不通
# 如果是分组机器,则把all改成分组名称即可

远程机器账号不一定要是root,ansible 用-u xxx指定ssh的用户名。

所有节点上执行一个简单命令,但是不支持管道这些:

ansible all -a "/bin/echo hello"

这个就可以支持管道|和重定向>包括$HOME等变量,用shell模块:

ansible all -m shell -a "/bin/echo hello"

但是shell有注入风险,而command相对安全些。

复制文件命令:

ansible all -m copy -a "src=/etc/yum.repos.d/CentOS-Base.repo dest=/etc/yum.repos.d/CentOS-Base.repo"
文档更新时间: 2020-04-20 13:38   作者:nick