Ansible初体验

栏目: 服务器 · 发布时间: 6年前

Ansible初体验

Ansible简介

Ansible 是一个自动化运维工具。 它能 批量 配置系统、部署软件,也能编排更复杂的运维任务,如连续部署、零停机时间滚动更新等。 同类软件有 SaltPuppetChef 等,都各有优劣。 而 Ansible 独特的优势在于,只要配置SSH能免密连接就行(通过 paramiko 实现),无需配置Agent。

Ansible 是基于模块(Module)工作的,本身没有批量部署的能力。真正具有批量部署的是 Ansible 所运行的模块, Ansible 只是提供一种框架。 目前, Ansible 版本为2.6.5,支持1850个模块。 模块也可称为插件(Plugin),可以自定义,按需开发,因此 Ansible 也具备非常良好的可扩展性。

安装Ansible

Ansible 是一个 Python 项目,可以直接通过 pip 安装。

pip install ansible

当然,这样虽然简单方便,却没有CLI补全支持。 所以,也可以通过包管理器安装。

# For Debian/Ubuntu
sudo apt install ansible
# For Mac OS X
brew install ansible

配置文件

Ansible 的配置文件有多个,按优先级 排序 如下:

ANSIBLE_CONFIG
ansible.cfg
~/.ansible.cfg
/etc/ansible/ansible.cfg

这里有一个官方样例: ansible.cfg 。 将其复制到本地的 ~/.ansible.cfg ,略作修改,即可开始体验。 说到底,配置文件这种东西,最高效的使用方法,就是从一个注释完善的模板开始定制。

curl -sSL https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg -o ~/.ansible.cfg

Inventory

Inventory中,定义了被托管host的集合。 可以使用域名、hostname等,能够查询到IP的字符串,或者IP本身。 格式类似ini,但保留 all 字段,这代表全部。

[xx]
10.0.0.73
10.0.0.74
10.0.0.75
10.0.0.76
10.0.0.77
10.0.0.78
10.0.0.79
10.0.0.80

测试

$ ansible xx -m ping
10.0.0.77 | FAILED! => {
    "changed": false,
    "module_stderr": "Shared connection to 10.0.0.77 closed.\r\n",
    "module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n",
    "msg": "MODULE FAILURE",
    "rc": 127
}
...

以上为失败的测试。 除了Master的SSH的公钥要配置到Slave的 ~/.ssh/authorized_keys 以外,Slave还需要安装Python。

以下为成功的测试。 成功后,就可以开始执行正式的操作。

$ ansible xx -m ping
10.0.0.77 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
...

常用操作

# 安装htop
ansible xx -m apt -a 'name=htop'
# 卸载htop
ansible xx -m apt -a 'name=htop state=absent'

# 复制一个文件到所有目标位置
ansible xx -m copy -a 'src=sth.zip dest=/tmp/'

# 修改某个文件的权限与所属
ansible xx -u root -m file -a 'dest=/tmp/sth.zip mode=777 owner=root group=docker'

总体来说,用法还是很鬼畜的,其实是手写Playbook。 所以,除了临时操作,还是转为写ansible-playbook会比较专业。 (本文不对ansible-playbook做介绍。)

另外,执行任意命令也是可以的,但慎用:

ansible xx -a 'echo hello'

这样做,虽然也能达到和模块相同的功能,但却不能支持良好的执行过程管理,不能回滚,也不能避免重复。 因此,还是需要尽量使用模块来完成任务。

参考


以上所述就是小编给大家介绍的《Ansible初体验》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议

TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议

胡谷雨、吴礼发、W.Richard Stevens / 胡谷雨 / 机械工业出版社 / 2000-9 / 35.00元

《CP.IP详解(卷3):CP事务协议.HP.P和UIX域协议》是“TCP/IP详解系列”的延续。主要内容包括:TCP事务协议,即T/TCP,这是对TCP的扩展,使客户-服务器事务更快、更高效和更可靠;TCP/IP应用,主要是HTTP和NNTP;UNIX域协议,这些协议提供了进程之间通信的一种手段。当客户与服务器进程在同一台主机上时,UNIX域协议通常要比TCP/IP快一倍。《CP.IP详解(卷3......一起来看看 《TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具