Ansible是一个开源配置管理工具,可以使用它来自动化任务,部署应用程序实现IT基础架构。
Ansible可以用来自动化日常任务,比如,服务器的初始化配置、安全基线配置、更新和打补丁系统,安装软件包等。
Ansible架构相对比较简单,仅需通过SSH连接客户机执行任务即可:
Ansible的与节点有关的重要术语包括:①控制节点,②受管节点,③清单和④主机文件:
①控制节点(Control node):指安装了Ansible的主机,也叫Ansible服务器端,管理机。 Ansible控制节点主要用于发布运行任务,执行控制命令。Ansible的程序都安装在控制节点上,控制节点需要安装Python和Ansible所需的各种依赖库。注意:目前Ansible控制节点还不能安装在Windows下。
②受控节点(Managed nodes):也叫客户机,就是想用Ansible执行任务的客户服务器。
③清单(Inventory):受控节点的列表,就是所有要管理的主机列表。
④host文件:清单列表通常保存在一个名为host文件中。
在host文件中,可以使用IP地址或者主机名来表示具体的管理主机和认证信息,并可以根据主机的用户进行分组。
缺省文件:/etc/ansible/hosts,可以通过-i指定自定义的host文件。
模块(Modules):模块是Ansible执行特定任务的代码块。比如:添加用户,上传文件和对客户机执行ping操作等。Ansible现在默认自带450多个模
块,,Ansible Galaxy公共存储库则包含大约1600个模块。
任务(Task):是Ansible客户机上执行的操作。可以使用ad-hoc单行命令执行一个任务。
剧本(Playbook):是利用YAML标记语言编写的可重复执行的任务的列表,playbook实现任务的更便捷的读写和贡献。比如,在Github上有大量的
Ansible playbooks共享,你要你有一双善于发现的眼睛你就能找到大量的宝藏。
角色(roles):角色是Ansible 1.2版本引入的新特性,用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks
以及handlers等。
这玩意批量操作比pssh复杂,但是用熟练了比pssh好用。一样需要有免密操作。
实验环境:CentOS7.8 还能用2年,2024-06-30停服,已经实在无力继续搞这个系统了。瓶颈期,懂的懂。
简单安装和简单的演示,复杂的需要百度多学习了。
首先搭建2-3个虚拟机,互通,ssh端口无所谓。
#sudo yum install ansible #安装ansible
#ansible --version #查看版本
为了更加直观的演示,我们重新新建个用户。每台虚机都一样,方便管理。
#sudo useradd ansible_user #创建个用户ansible_user
#sudo usermod -aG wheel ansible_user #修改组,所有主机都统一下,方便管理。
#sudo passwd ansible_user #设置ansible_user 的密码
# sudo vi /etc/sudoers #编辑配置文件。
将 #%wheel ALL=(ALL) NOPASSWD: ALL 的 # 去掉,如下图:
2台虚机上都这么操作后,然后就是配置免密。这里不介绍怎么操作了,看之前的老帖。
免密完成,然后在控制台配置默认配置文件。
第一步修改默认配置文件:/etc/ansible/ansible.cfg。新手就不建议修改了。
第二步修改默认路径下的host文件。也在/etc/ansible/下
你可以改变 hosts文件的路径,不过对应的 ansible.cfg配置文件也需要修改。
配置完成后,接下里验证下:
#ansible all -m command -a 'date' #查看所有虚机的时间
#在所有设备上创建一个txt文件。
# ansible all -m command -a 'mkdir /home/ansible/CreateFile.txt'
接下里就是只需要熟悉ansible的 命令就可以猥琐欲为了。