ansible从入门到精通
文章平均质量分 84
ansible
zhengjq~
devops运维领域优质创作者。运维开发,数据挖掘,算法程序设计,云原生,自动化运维
展开
-
Ansible性能调优
在Ansible的设置中,SSH的pipelining功能时默认关闭的,这是为了兼容不同的sudo配置,主要是requieretty选项。但是这也不可避免的带来一个问题,即Ansible的执行速度较慢。在默认情况下,以SSH登录远程设备时,该设备会检查远程主机的公钥,并且将该公钥记录在~/.ssh/known_hosts文件中,当下次该主机访问时,OpenSSH会核对公钥。关于Ansible执行速度的问题,尽管是Ansible的硬伤,但是我们还是可以对其进行部分的优化,尽量的加快Ansible的执行速度。原创 2024-02-16 05:30:00 · 958 阅读 · 0 评论 -
Ansible Role实战
然后,我们在Ansible设备上安装Apache服务,并将其配置文件修改,将Listen、User和Group三处改为{{ listen_port }}、{{ username }}和{{ groupname }}。为了实现这一目的,我们首先在/etc/ansible/roles/目录下创建apache子目录,以作为一个Role。然后在该目录下,创建。本文从具体的Role运用的角度,实现了标准化的Ansible的Role实战,完成了通过Role安装Apache服务。原创 2024-02-16 03:45:00 · 316 阅读 · 0 评论 -
Ansible Role实战
的文件夹,该文件夹作为Role的总文件夹,在该文件夹下,分别创建 prepare、apache、mysql和php的子文件夹,这些作为LAMP架构的组成部分,在这每个子文件夹下面,再分别创建名为tasks、files、vars、meta、default和handlers的子文件夹。首先,我们先创建相关的Role文件架构,并在Ansible设备上安装LAMP架构。的Role实战,实战的目的是使用Ansible写一个Roles控制脚本,控制被控端设备上通过YUM的方式安装LAMP架构。原创 2024-02-15 23:27:51 · 1008 阅读 · 0 评论 -
Ansible中的Tag和Handler
在Ansible中,编写Playbook时,支持给task定义一个或多个Tag标签,我们在执行Playbook时,可以使用-t参数,根据Tag来确定具体执行什么任务。---tasks:tags:- httpd- nginx在上述配置中,我们给三个tasks分别定义了httpd和nginx两种标签,这样,我们在调用该Playbook时,就可以根据标签来明确要执行的task了。原创 2024-02-14 23:07:43 · 485 阅读 · 0 评论 -
Ansible Roles详解
Ansible自1.2版本之后,引入了Roles的新特性,以便层次性和结构化的组织Playbook。相比于Ansible命令的方式进行控制,Ansible Playbook的控制方式极大的提升了Ansible对于被控端设备的管理能力。但是,如果我们想配置更加复杂的被控端环境,那么但但的将所有的配置命令写成一个Playbook文件就可多达成百上千行。这极不利于Ansible Playbook的管理和维护。原创 2024-02-14 23:03:39 · 876 阅读 · 0 评论 -
Ansible Template高级控制
在上述配置中,vhost为自定义变量,该变量的值由调用该模板的Playbook时不断迭代传入。Ansible Template的when语句可以用于条件测试,when的引入可以使得Ansible的Playbook根据不同的条件执行不同的命令。Ansible的Template在for语句的基础上,还可以引入if,可以使得根据条件进行判断,灵活的生成配置文件,进行更加复杂的服务器配置。可以看出,在该配置文件中,server部分为Ansible的Playbook和Template中变量的不断迭代。原创 2024-02-14 23:02:44 · 803 阅读 · 0 评论 -
Ansible Template模板基础
Ansible的Playbook支持Template模板的使用,Template模板在运用时与copy模块类似,区别在于可以在Ansible的Playbook执行的时候,根据一定的条件灵活的设置要复制文件中的部分关键内容。因此,第一个task就相当于执行了3遍,而把每一次执行都调用下面的item中的一个值,第二个task与第一个task类似。上述模板文件,用双括号定义了一个listen_port变量,我们需要在调用Playbook时对该变量进行赋值,然后该变量就会替代模板文件中的变量。原创 2024-02-14 22:59:42 · 390 阅读 · 0 评论 -
Ansible配置文件详解
的方式安装Ansible,那么Ansible的配置文件为/etc/ansible/ansible.cfg。定义了Ansible默认搜寻模块的位置,默认为/etc/ansible/my_modules/目录。用于指定Ansible日志文件,默认情况下为/var/log/ansible.log。定义了Ansible默认的主机配置文件,默认为/etc/ansible/hosts。定义了Ansible通信的主机,该参数默认为*,表示与所有主机进行通信。定义了Ansible的通信端口,默认为22。原创 2024-02-14 22:57:55 · 848 阅读 · 0 评论 -
Ansible palybook变量
Ansible除了可以在调用ansible-palybook命令时赋值外,Ansible还支持在hosts文件中定义变量。在hosts文件中可以设置指定模块的变量,可以给每个不同的模块设置不同的变量,这样更增强了Ansible Playbook的灵活性。[exp][exp:vars]bl=tree这样,上述变量配置完毕后,我们可以直接执行该Playbook了,执行结果如下:除了在Ansible hosts文件中定义变量外,我们还可以在palybook中定义变量。原创 2024-02-14 22:56:19 · 876 阅读 · 0 评论 -
Ansible palybook简单使用
可以看出,一个很简单的Ansible的Playbook文件就有这么多的格式,并且还十分严格。有时我们看了很多的Playbook,但是自己在实际撰写Playbook时,却总是会出现这样那样的错误,就是由于YAML的严格格式造成的。注意,上述Playbook示例,只是Ansible中非常简单的一个示例,在生产环境中Ansible结合诸多变量、模板、role,写出的Playbook会复杂的多,也能完成更加复杂的任务。其他的诸行,都有类似上述格式的存在,参数后面都存在冒号,冒号后面有空格。原创 2024-02-14 22:54:19 · 785 阅读 · 0 评论 -
Ansible palybook基础
YAML语言,即Yet Another Markup Language,是一种能被计算机直接识别的标记语言,同时也方便人的阅读,且方便和脚本语言交互。如果Ansible下游设备很多,配置信息也比较多,我们可以编写Ansible Playbook,使得Ansible对下游设备的管理更加自动化与流程化。Ansible控制下游设备的命令,通过Ansible的各个模块来进行控制。任务的名称,在Ansible运行的过程中起到提示的作用,会打印在屏幕上。定义playbook的远程主机组,即控制的下游设备信息。原创 2024-02-14 22:52:49 · 313 阅读 · 0 评论 -
Ansible其他模块使用详解
该模块有四个常用参数,url参数主要用于指定被控客户端要远程下载的文件,dest参数主要指定目的文件夹,mode参数指定下载后的文件权限,force参数可以为yes或者是no。该模块有常用的5个参数,src参数指定Ansible设备上的文件位置,dest参数指定传输目标位置,onwer参数指定传输文件的属主,group参数用于指定文件的属组,mode参数用于指定文件的权限。,该参数有三个常用参数,name表示给该定时任务命名,minute参数指定该定时任务的间隔,job指定了具体的操作。原创 2024-02-14 22:51:05 · 706 阅读 · 0 评论 -
Ansible命令模块详解
尽管Ansible的shell模块可以通过管道符的方式一次性的执行多条命令,但是如果我们要执行的命令过多,shell模块在使用上还是不方便。虽然command模块时Ansible的默认模块,使用比较简单,但是command模块的命令执行不是通过shell执行的,这就导致了带有">","原创 2024-02-14 22:43:42 · 303 阅读 · 0 评论 -
Ansible主机清单
主机清单是Ansible的一个重要内容。在主机清单内,定义了Ansible需要控制的主机有哪些,以及其用户名、密码等信息,这些信息可以使得Ansible通过SSH链接到指定主机上。Ansible的主机清单默认写在/etc/ansible/hosts文件中,我们在调用Ansible命令的时候,需要使用-i参数来指定主机清单文件。Ansible的主机清单定义有两种方式,通过用户名和密码的方式或者是通过SSH密钥的方式。原创 2024-01-21 23:14:54 · 829 阅读 · 0 评论 -
Ansible安装与命令
Ansible可以使用YUM的方式进行安装,但是,由于Ansible的YUM安抓鬼包下在EPEL扩展源中。因此,要安装Ansible,就必须先安装EPEL的扩展源。-i 指定了主机文件,如果不指定,则默认为/etc/ansible/hosts文件,在主机文件中,定义了Ansible要控制的主机IP或域名,及其用户、密码。-v -vv -vvv -vvvv 表示Ansible输出的详细程度,“v”越多,表示输出越详细。-u 表示指定Ansible执行的用户。-m 表示Ansible要调用的模块。原创 2024-01-21 23:09:51 · 364 阅读 · 0 评论 -
Ansible理论基础
目前,随着IT行业的高速发展,市场上出现了一大批自动化管理工具,这些工具可以使得我们通过一台设备管理控制成千上万台不同的设备,使得我们更方便、更快捷的进行运维管理。目前主流的自动化运维工具有PSSH、Puppet、Chef、SaltStack、Ansible等等,互联网企业使用最多的是Ansible、Saltstack和Puppet。原创 2024-01-21 23:05:43 · 757 阅读 · 0 评论