Ansible
文章平均质量分 65
qq_41417660
这个作者很懒,什么都没留下…
展开
-
27-Ansible节点过多超时解决方法
一、管理节点过多导致的超时问题解决方法默认情况下,Ansible将尝试并行管理playbook中所有的机器。对于滚动更新用例,可以使用serial关键字定义Ansible一次应管理多少主机,还可以将serial关键字指定为百分比,表示每次并行执行的主机数占总数的比例[root@Ansible test02]# cat serial.yml ---- name: serial hosts: all serial: 2 #每次只同时处理2个主机 gather_facts: False原创 2021-02-25 21:19:03 · 1329 阅读 · 0 评论 -
25-Ansible-Playbook-template模板
一、template 模板模板是一个文本文件,可以做为生成文件的模版,并且模板文件中还可嵌套jinja语法jinja2语言学习网站:https://jinja.palletsprojects.com/en/2.11.x/jinja2 语言使用字面量,有下面形式:字符串: 使用单引号或双引号数字: 整数,浮点数列表: [item1, item2, …]元组: (item1, item2, …)字典: {key1:value1, key2:value2, …}布尔型: true/false原创 2021-02-25 20:58:59 · 362 阅读 · 0 评论 -
24-Ansible-Playbook使用变量
一、Playbook中使用变量变量名仅能由字母、数字和下划线组成,且只能以字母开头1、变量定义:variable=value例: http_port=802、变量调用方式:通过{{ variable_name }} 调用变量,且变量名前后建议加空格,有时用“{{ variable_name }}”才生效变量来源1.ansible 的 setup facts 远程主机的所有变量都可直接调用2.通过命令行指定变量,优先级最高ansible-playbook -e varn原创 2021-02-25 20:22:28 · 144 阅读 · 0 评论 -
11-Ansible常用模块-blockinfile模块
一、概述blockinfile 模块可以帮助我们在指定的文件中插入”一段文本”,这段文本是被标记过的,也就是,我们在这段文本上做了记号,以便在以后的操作中可以通过”标记”找到这段文本,然后修改或者删除它。单单这样描述不是特别容易理解,结合后面的示例动手做做立马就能明白了。二、常用参数path参数 : 必须参数,指定要操作的文件。block参数 : 此参数用于指定我们想要操作的那”一段文本”,此参数有一个别名叫”content”,使用content或block的作用是相同的。marker参数 :原创 2021-02-24 16:07:08 · 769 阅读 · 0 评论 -
12-Ansible常用模块-lineinfile模块
一、概述我们可以借助 lineinfile 模块,确保”某一行文本”存在于指定的文件中,或者确保从文件中删除指定的”文本”(即确保指定的文本不存在于文件中),还可以根据正则表达式,替换”某一行文本”。二、常用参数path参数 : 必须参数,指定要操作的文件。line参数 : 使用此参数指定文本内容。regexp参数 : 使用正则表达式匹配对应的行,当替换文本时,如果有多行文本都能被匹配,则只有最后面被匹配到的那行文本才会被替换,当删除文本时,如果有多行文本都能被匹配,这么这些行都会被删除。s原创 2021-02-24 15:31:34 · 499 阅读 · 0 评论 -
Ansible目录
一、Ansible前期配置00Ansible开篇01-Ansible安装配置02-第一条Ansible命令03-Ansible管理命令04-Ansible Inventory二、Ansible常用模块05-Ansible模块的基本使用(fetch模块)06-Ansible常用模块-command模块07-Ansible常用模块-shell模块...原创 2021-02-23 00:40:45 · 229 阅读 · 0 评论 -
22-Ansible常用模块磁盘管理模块parted、lvg、lvol、filesystem、mount
一、parted模块 可以管理磁盘device 指定硬盘设备路径 比如 /dev/vdblabel 指定分区表类型 gpt mbrnumber 指定分区序号part_start 分区起始位置part_end 分区结束位置state 指定操作方式 present创建 absent删除 info查信息(默认)ansible node2 -m parted -a 'devic原创 2021-02-23 00:18:23 · 2952 阅读 · 1 评论 -
15-Ansible常用模块-cron模块
一、概述cron 模块可以帮助我们管理远程主机中的计划任务,功能相当于 crontab 命令。在了解cron模块的参数之前,先写出一些计划任务的示例:# 示例1,每天的1点5分输出 test 字符5 1 * * * echo test# 示例2,每3天执行一次计划任务,于当天的1点1分执行,具体任务为输出 test 字符1 1 */3 * * echo test# 示例3,每次系统启动后需要执行一次计划任务,具体任务为输出 test 字符@reboot echo test# 示例4,原创 2021-02-22 23:15:29 · 513 阅读 · 0 评论 -
13-Ansible常用模块-find模块
一、概述find 模块可以帮助我们在被管理主机中查找符合条件的文件,就像 find 命令一样。二、常用参数paths参数 : 必须参数,指定在哪个目录中查找文件,可以指定多个路径,路径间用逗号隔开,此参数有别名,使用别名 path 或者别名 name 可以代替 paths。recurse参数 : 默认情况下,只会在指定的目录中查找文件,也就是说,如果目录中还包含目录,ansible 并不会递归的进入子目录查找对应文件,如果想要递归的查找文件,需要使用 recurse 参数,当 recurse 参原创 2021-02-22 22:49:32 · 214 阅读 · 0 评论 -
17-Ansible常用模块-user模块
一、概述user 模块可以帮助我们管理远程主机上的用户,比如创建用户、修改用户、删除用户、为用户创建密钥对等操作。二、常用参数原创 2021-02-22 22:42:32 · 365 阅读 · 0 评论 -
14-Ansible常用模块-replace模块
一、概述replace 模块可以根据我们指定的正则表达式替换文件中的字符串,文件中所有被匹配到的字符串都会被替换。二、常用参数path参数 : 必须参数,指定要操作的文件,2.3版本之前,只能使用 dest, destfile, name指定要操作的文件,2.4版本中,仍然可以使用这些参数名,这些参数名作为 path 参数的别名使用。regexp参数 : 必须参数,指定一个 python 正则表达式,文件中与正则匹配的字符串将会被替换。replace参数 : 指定最终要替换成的字符串。ba原创 2021-02-22 22:34:05 · 428 阅读 · 0 评论 -
10-Ansible常用模块-file模块
一、概述file 模块可以帮助我们完成一些对文件的基本操作。比如,创建文件或目录、删除文件或目录、修改文件权限等。二、常用参数path参数 : 必须参数,用于指定要操作的文件或目录,在之前版本的ansible中,使用dest参数或者name参数指定要操作的文件或目录,为了兼容之前的版本,使用dest或name也可以。state参数 : 此参数非常灵活,其对应的值需要根据情况设定。比如,我们想要在远程主机上创建/testdir/a/b目录,那么则需要设置path=/testdir/a/b,但是,我们原创 2021-02-22 22:14:45 · 645 阅读 · 0 评论 -
08-Ansible常用模块-script模块
一、概述script 模块可以帮助我们在远程主机上执行 ansible 管理主机上的脚本,也就是说,脚本一直存在于 ansible 管理主机本地,不需要手动拷贝到远程主机后再执行。二、常用参数free_form参数 : 必须参数,指定需要执行的脚本,脚本位于 ansible 管理主机本地,并没有具体的一个参数名叫 free_form,具体解释请参考 command 模块。chdir参数 : 此参数的作用就是指定一个远程主机中的目录,在执行对应的脚本之前,会先进入到 chdir 参数指定的目录中。原创 2021-02-22 21:28:03 · 1370 阅读 · 0 评论 -
16-Ansible常用模块-service模块
一、概述service 模块可以帮助我们管理远程主机上的服务。比如,启动或停止远程主机中的 nginx 服务注意: 假如想要管理远程主机中的某个服务,那么这个服务必须能被 BSD init, OpenRC, SysV, Solaris SMF, systemd, upstart 中的任意一种所管理,否则 service模块也无法管理远程主机的对应服务。二、常用参数name参数: 此参数用于指定需要操作的服务名称,比如 nginx。state参数: 此参数用于指定服务的状态,比想要启动远程主原创 2021-02-20 23:10:17 · 284 阅读 · 0 评论 -
18-Ansible常用模块-group模块
一、概述group 模块可以帮助我们管理远程主机上的组。二、常用参数name参数: 必须参数,用于指定要操作的组名称。state参数: 用于指定组的状态,两个值可选,present,absent,默认为 present,设置为absent 表示删除组。gid参数: 用于指定组的gid。三、示例1.确保all主机中存在名为 testgroup 的组。[root@Ansible ~]# ansible all -m group -a 'name=testgroup'原创 2021-02-19 16:45:17 · 446 阅读 · 0 评论 -
19-Ansible常用模块-yum_repository模块
一、概述yum_repository 模块可以帮助我们管理远程主机上的 yum 仓库。二、常用参数name参数: 必须参数,用于指定要操作的唯一的仓库ID,也就是”.repo”配置文件中每个仓库对应的”中括号”内的仓库ID。baseurl参数: 此参数用于设置 yum 仓库的 baseurl。description参数: 此参数用于设置仓库的注释信息,也就是”.repo”配置文件中每个仓库对应的”name字段”对应的内容。file参数: 此参数用于设置仓库的配置文件名称,即设置”.repo”配原创 2021-02-19 16:30:29 · 529 阅读 · 0 评论 -
20-Ansible常用模块-yum模块
一、概述yum 模块可以帮助我们在远程主机上通过 yum 源管理软件包。二、常用参数name参数: 必须参数,用于指定需要管理的软件包,比如 nginx。state参数: present(安装)、latest(更新)、absent(卸载)。**disable_gpg_check参数:**禁用对 rpm 包的公钥 gpg 验证。默认值为 no,表示不禁用验证,设置为 yes 表示禁用验证,即不验证包,直接安装。在对应的 yum 源没有开启 gpg 验证的情况下,需要将此参数的值设置为yes,否则原创 2021-02-19 15:54:37 · 697 阅读 · 0 评论 -
21-Ansible常用模块-setup模块
一、概述setup 模块用于收集远程主机的一些基本信息。二、常用参数filter参数: 用于进行条件过滤。如果设置,仅返回匹配过滤条件的信息。三、示例1.获取 192.168.0.160主机的信息。[root@Ansible ~]# ansible 192.168.0.160 -m setup192.168.0.160 | SUCCESS => { "ansible_facts": { "ansible_all_ipv4_addresses": [原创 2021-02-19 15:42:27 · 405 阅读 · 0 评论 -
07-Ansible常用模块-shell模块
一、概述shell 模块可以帮助我们在远程主机上执行命令。与 command 模块不同的是,shell 模块在远程主机中执行命令时,会经过远程主机上的 /bin/sh 程序处理。先参考 command 模块的介绍二、常用参数free_form参数 : 必须参数,指定需要远程执行的命令,但是并没有具体的一个参数名free_form,具体解释参考 command 模块。chdir参数 : 此参数的作用就是指定一个目录,在执行对应的命令之前,会先进入到 chdir 参数指定的目录中。creates原创 2021-02-19 14:44:21 · 637 阅读 · 0 评论 -
06-Ansible常用模块-command模块
一、概述command 模块可以帮助我们在远程主机上执行命令。使用 command 模块在远程主机中执行命令时,不会经过远程主机的 shell 处理。使用 command 模块时,如果需要执行的命令中含有重定向、管道符等操作时,这些符号也会失效,比如”<”, “>”, “|”, “;” 和 “&” 这些符号。如果你需要这些功能,可以参考后面介绍的 shell 模块。还有一点需要注意,如果远程节点是 window操作系统,则需要使用 win_command 模块。执行 ansi原创 2021-02-19 14:36:06 · 631 阅读 · 0 评论 -
05-Ansible模块的基本使用(fetch模块)
一、如何使用模块使用 ansible 完成实际任务时,需要依靠 ansible 的各个模块,比如,我们想要去 ping 某主机,则需要使用 ping 模块命令如下:[root@Ansible ansible]# ansible all -m pingansible 还有很多模块可供我们使用。我们可以使用如下命令,查看 ansible 都有哪些模块:[root@ansible-manager ~]# ansible-doc -la10_server原创 2021-02-19 14:09:19 · 1539 阅读 · 0 评论 -
04-Ansible Inventory
一、概述当安装完 Ansible 以后,会提供一个默认的管理清单( Inventory ),即 /etc/ansible/hosts 文件。除默认文件外,我们还可以同时使用多个 Inventory 文件,也可以从动态源或云上拉取 Inventory 配置信息。本节介绍 Inventory 文件的书写方法。二、主机和组Inventory 是一个静态的 INI 格式的文件,中括号中的字符为组名。其支持将同一主机同时分到多个不同组中。此外,若被管理主机使用了非默认的 SSH 端口,还可以在主机名称之后使用冒原创 2021-02-19 12:45:03 · 81 阅读 · 0 评论 -
02-第一条Ansible命令
一、编写第一条命令这条命令的意思是通过管理主机 ping 192.168.0.160 命令中的”-m ping”表示调用 ping 模块[root@Ansible ~]# ansible 192.168.0.160 -m ping如果想要让上述命令正常执行,则必须同时满足两个最基本的条件:(1)Ansible 所在的管理主机可以通过ssh连接到被管理主机。(2)被管理主机的IP地址等信息已经添加到 Ansible的”管理清单(Inventory)”中。二、执行第一条命令在01节我们已经安原创 2021-02-19 12:23:55 · 126 阅读 · 0 评论 -
09-Ansible常用模块-copy模块
一、概述见名知义,copy模块的作用就是拷贝文件,它与之前介绍的fetch模块类似,不过,fetch模块是从远程主机中拉取文件到ansible主机,而copy模块是将ansible主机上的文件拷贝到远程主机中。二、常用参数src: 用于指定需要copy的文件或目录dest: 用于指定文件将被拷贝到远程主机的哪个目录中,dest为必须参数content: 当不使用src指定拷贝的文件时,可以使用content直接指定文件内容,src与content两个参数必有其一,否原创 2021-02-22 21:58:34 · 781 阅读 · 0 评论 -
ansible UI管理工具awx安装实践
1.安装EPEL源[root@client ~]# yum -y install epel-release2.安装asnible[root@client ~]# yum -y install ansible默认为最新版[root@client ~]# ansible --versionansible 2.9.13 config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansib原创 2020-09-21 15:35:06 · 9374 阅读 · 13 评论 -
03-Ansible管理命令
一、Ansible 管理命令Ansible 管理命令有如下几个:(1)ansible:这个命令是日常工作中使用率非常高的命令之一,主要用于临时一次性操作;(2)ansible-doc:Ansible 模块文档说明,针对每个模块都有详细的用法说明和应用案例介绍;(3)ansible-galaxy:可以简单的理解为 Github 或 PIP 的功能,是 Ansible 官方一个分享 role 的功能平台。可以通过 ansible-galaxy 命令很简单的实现 role 的分享和安装;(4)ansib原创 2021-02-17 14:09:30 · 208 阅读 · 0 评论 -
00Ansible开篇
安装ansible[root@Ansible ~]# yum -y install epel-release[root@Ansible ~]# yum -y install ansible[root@Ansible ~]# ansible --versionansible 2.9.15 config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules原创 2020-11-15 22:15:53 · 114 阅读 · 0 评论