干货篇 | 一文带你了解Ansible(上)

网友投稿 882 2022-10-21

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

干货篇 | 一文带你了解Ansible(上)

Ansible:核心组件Modules:包括Ansible自带的核心模块及自定义模块Plugins:完成模块功能的补充,包括连接插件、邮箱插件Playbooks:剧本;定义Ansible多任务配置文件,完成对主机批量部署操作Inventory:定义Ansible管理主机的清单  /etc/ansibe/hosts主机清单里面包含了被执行的主机仅对主机清单内的主机列表进行操作,可以实现主机分组Connection Plugins:负责和被监控端实现通信

02安装和配置文件

在初步了解什么是 ansible 之后,我们先将它下载安装并配置到我们的机器上首先安装我们的epel扩展源

yum -y install epel-release

之后安装 ansible

yum -y install ansible

安装完成之后我们检验一下是否安装成功

#检测版本ansible --version

接下来我们看一下 ansible 的一些常见配置文件

主配置文件

ansible 的主配置文件包含了一些常用的、基本的配置

[defaults]# some basic default values...inventory = /etc/ansible/hosts    #主机列表配置文件library = /usr/share/my_modules/       #库文件存放位置module_utils = /usr/share/my_module_utils/ #Ansible默认搜寻模块的位置remote_tmp = ~/.ansible/tmp   #生成的临时py命令文件存放在远程主机的目录local_tmp = ~/.ansible/tmp  #本机的临时命令执行目录forks = 5  #默认的并发数poll_interval = 15  #默认的线程池sudo_user = root   #默认sudo用户ask_sudo_pass = True    #在执行sudo之前是否询问sudo密码.默认为Falseask_pass = True     #每次执行ansible命令是否询问ssh密码,默认为Falsetransport = smart             #通信机制.默认 值为’smart’。如果本地系统支持 ControlPersist技术的话,将会使用(基于OpenSSH)‘ssh’,如果不支持讲使用‘paramiko’.其他传输选项包括‘local’, ‘chroot’,’jail’等等remote_port = 22              #远程连接的端口号host_ key_checking = False #检查对应服务器的host_ key ,建议取消注释。这样的话控制其他主机相连的时候就不用先ssh连一次log_path=/var/log/ansible.log #日志文件,建议开启

主机清单

什么是主机清单?顾名思义,就是一个包含了主机的清单文件,你要操控的目标主机都在这个主机清单里面

在主机清单里面,我们直接指明主机地址或者主机名,如果是主机名的话,你得先做好dns解析配置

除此之外,我们还可以编写主机组,我们想要操控这个主机组里面的所有主机的话,直接指定主机名即可

主机清单的文件路径

/etc/ansible/hosts

接下来我们试着编写一下编写主机列表

vi /etc/ansible/hosts#主机ip地址10.11.11.10010.11.11.101#主机名salted1.comsalted2.com

我们还可以以主机组的形式来进行编写

vi /etc/ansible/hosts[server1]salted1.comsalted2.com[server2]edison1.comedison2.com

03命令系列

介绍完 ansible 的安装和基础的配置文件之后,我们来简单看一下 ansible 的一些命令

我们在面对不懂的命令时候,可以查看官方的文档帮助,而以下这个命令就能帮助我们理解关于 ansible 模块的一些帮助

ansible ‐doc #显示模块帮助

-a #显示所有模块的文档,不建议使用-l , --list #列出可用模块-s #显示指定模块的playbook片段

如果我们想要显示出 ansible 的版本信息,可以使用

ansible --version

我们在使用 ansible 去操控目标主机时,往往会使用到一些模块,而这个命令可以帮助我们指定相关的模块

ansible -m 模块名字

如果希望命令只是检测一下,并不是真正执行,这样就可以在执行前检查到有没有出错,我们可以用下面这个参数

ansible -C

我们在上面列出了一些常用的 ansible 的命令,那么你知道 ansible 命令执行的大概过程吗?

上一篇:玩转腾讯数据库TcaplusDB|期待下次与你相见!
下一篇:高并发系统中的尾延迟Tail Latency
相关文章

 发表评论

暂时没有评论,来抢沙发吧~