ansible初接触

参考网站:
Ansible中文权威指南
Ansible Documentation
中文的方便阅读,但是有些语法已经过时,最好是主要看英文,中文做参考。另外,本文不是教程,基本上摘抄文档,因本人水平有限,有不明白之处,评论或私信或自行百度。

Ansible简介

Ansible是什么,简单地说是用python编写的一款自动化运维的软件。

  • 优点
    • 简单易用
    • 安全可靠

其他的东西就不过多的描述了,本文主要记录的是学习过程的体会和收获。

目标

博主学习的目的主要是为了批量部署zabbix,查了很多资料发现ansible这个东西,因为资料的非普适性,我觉得自行学习,以后更多的任务场景也能用到。

准备

安装,简单粗暴两条命令:

yum install epel-release
yum install ansible

添加主机

安装好之后,在/etc/ansible/hosts文件中写入多个host,可以用IP或者主机名(前提是宿主机要能解析到)。例如

192.168.1.50
aserver.example.org
bserver.example.org

详细的配置在后面介绍。此处为了方便ssh的连接,避免重复输入ssh key,可以这么操作:

$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa

(根据你的建立方式,你也许希望使用Ansible的 –private-key 选项,通过指定pem文件来代替SSH Key来授权)

命令初尝

现在可以输入第一条命令,ping你的所有节点:

ansible all -m ping

Ansible会像SSH那样试图用你的当前用户名来连接你的远程机器.要覆写远程用户名,只需使用-u参数. 如果你想访问 sudo模式,这里也有标识(flags)来实现:

## as bruce
$ ansible all -m ping -u bruce

## as bruce, sudoing to root
$ ansible all -m ping -u bruce --sudo

## as bruce, sudoing to batman
$ ansible all -m ping -u bruce --sudo --sudo-user batman

(如果你碰巧想要使用其他sudo的实现方式,你可以通过修改Ansible的配置文件来实现.也可以通过传递标识给sudo(如-H)来设置.)

也可以试试这个命令 :

$ ansible all -a "/bin/echo hello"

小结

以上就是ansible的基本入门,后面将会慢慢展开学习内容。

题外

公钥认证

Ansible1.2.1及其之后的版本都会默认启用公钥认证.

如果有个主机重新安装并在“known_hosts”中有了不同的key,这会提示一个错误信息直到被纠正为止.在使用Ansible时,你可能不想遇到这样的情况:如果有个主机没有在“known_hosts”中被初始化将会导致在交互使用Ansible或定时执行Ansible时对key信息的确认提示.

如果你想禁用此项行为并明白其含义,你能够通过编辑 /etc/ansible/ansible.cfg or ~/.ansible.cfg来实现:

[defaults]
host_key_checking = False

或者你也可以通过设置环境变量来实现:

$ export ANSIBLE_HOST_KEY_CHECKING=False

同样注意在paramiko 模式中 公钥认证 相当的慢.因此,当使用这项特性时,切换至’SSH’是推荐做法.

Ansible将会对远程系统模块参数记录在远程的syslog中,除非一个任务或者play被标记了“no_log: True”属性,稍后解释. 在主控机上启用基本的日志功能参见 Ansible的配置文件 文档 并 在配置文件中设置’log_path’.企业用户可能也对 Ansible Tower 感兴趣.

塔提供了非常实用数据库日志.它使一次次向下钻取并查看基于主机,项目,和特定的结果集成为可能———— 同时提供了图形和 RESTful API.

发布了49 篇原创文章 · 获赞 12 · 访问量 6万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章