本书以新的自动化运维工具Ansible为主要内容,侧重于实战,由浅入深地介绍了Ansible以及周边产品Ansible Galaxy和Ansible Tower的用法。本书共计6章,前4章由浅及深、层层递进地介绍了Ansible的使用方法。第5章着重介绍了Ansible的代码分享机制role以及其分享平台Ansible Galaxy。第6章概括性地介绍了企业级软件Ansible Tower。全书的叙述风格通俗易懂,没有过多地引入复杂的概念,侧重于讲解原理,立足于实战,引领Ansible新手轻松入门。
本书提炼了Ansible中的精华,抓住核心,立足于实战,以达到让读者能快速上手的目的。
前 言
内容介绍
Ansible是对机群进行软件安装、配置和应用部署的自动化工具。自2012年Ansible出现后,以其使用简单、功能实用等特点得到了广泛关注,成为自动化运维工具中的冉冉新星。仅三年后就被红帽(Red Hat)公司收购,目前受到众多软件公司的关注、推广和使用。自动化部署无论对系统管理员还是对软件开发人员来说,都会减少重复的手工操作,提高部署效率。Ansible作为学习成本小、学习路径短的一款工具,更是值得了解和使用。
作为一本Ansible入门书籍,读者只需对Linux有最基本的了解就可以轻松读懂本书。
本书的内容共计6章,分为以下三个部分:
第一部分 Ansible基本工具的讲解(第1章~第4章)
本书首先介绍了Ansible架构,然后讲解了Ansible的主要概念,接着又介绍了一些具体使用方法,步步递进、层层深入地介绍了Ansible的相关知识。
第4章对前面3章中的知识细节进行了补充,以便读者能够深入理解Ansible的基本使用方法。
第二部分 role和衍生工具Ansible Galaxy的介绍(第5章)
role是Ansible最为推荐的重用代码的方式,并为其开发了Ansible Galaxy代码分享网站。但因其概念较为复杂,所以对其单独进行讲解。
第三部分 企业级收费软件Ansible Tower介绍(第6章)
企业级用户面临着更加复杂的应用环境和更高的安全要求,Ansible Tower就是一款解决企业级用户难题的收费软件。
代码的运行环境
建议读者安装Linux虚拟机作为Ansible的管理节点来测试本书中的代码。Ansible目前已被红帽公司收购,对Red Hat Linux系统的支持较为完善,建议读者最好选择Red Hat Linux 7或CentOS 7。
排版约定
为了使读者能快速把握到代码的重点,本书中代码的重要部分用加粗字体表示强调。
例如,下面的代码强调变量“ansible_os_family”的用法:
---
- hosts: all
user: root
tasks:
- name: echo system
shell: echo {{ ansible_os_family }}
- name install ntp on Debian linux
apt: name=git state=installed
when: ansible_os_family == "Debian"
- name install ntp on redhat linux
yum: name=git state=present
勘误信息
笔者对本书中所有的代码都进行了完整的测试,书中的文字也经过了反复的斟酌。尽管如此,由于时间紧迫且作者水平有限,错误和疏漏难以避免,还需要广大读者的反馈和修订,以使得本书更加完善。因此,如果您发现书中的任何错误,小到错别字,大到代码运行错误,都希望您能及时反馈。您的任何一次勘误,都会令笔者和其他读者受益,再次表示感谢。
勘误地址:
https://github.com/ansible-book/errata
或者
http://getansible.com/reference/errata
反馈勘误方法:
提问题到Github项目上:https://github.com/ansible-book/errata
ansible 只能用来管理局域网内的服务器吗,我看到网上的教程管理主机和被管理的服务器的IP地址都是属于一个网段的,而且有的教程特意强调只用于局域网。而且我一直连接不到远程主机,试了好多方法都不行。
在本书的第二章,11-12页中,有个playbook例子脚本,在此脚本里面有个调用yum模块的语句,原文是这样的
yum:pkg=httpd stastestte=latest
在我们使用的环境ansible版本为2.9.18
在这个版本里面yum没有pkg参数,只有name参数,所以是否是版本问题导致试例,还是其他原因,请相关专业人员进行技术审核。