
Ansible
Ansible安装配置,命令行、yaml操作
blueicex2020
走自己的路,少走弯路,让别人无路可走,让别人说去吧!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Ansible—— 41. playbook 操作技巧
1. ansible中使用python字符串获取a字符串的第3个字符,则可以使用"a[2]"获取,索引从0开始cat test.yml- hosts: test71 gather_facts: no vars: a: "vaA12345" tasks: - debug: msg: "{{a[2]}}"a[2:5]获取到a字符串的第3到第5个字符(不包含...原创 2020-03-31 11:41:51 · 637 阅读 · 0 评论 -
Ansible——39.playbook 角色
————Blueicex 2020/3/30 09:40 blueice1980@126.com原创 2020-03-31 11:15:54 · 274 阅读 · 0 评论 -
Ansible——38.playbook jinja2模板
1. hello jinja2模板cat temptest.yml---- hosts: test70 remote_user: root gather_facts: no tasks: - yum: name: redis state: present - template: src: /testdir/ansible/redis.conf ...原创 2020-03-30 16:24:39 · 406 阅读 · 0 评论 -
Ansible——40.playbook 使用ansible-vault加密数据
————Blueicex 2020/3/30 09:40 blueice1980@126.com原创 2020-03-30 16:01:02 · 2259 阅读 · 0 评论 -
Ansible——37.playbook include
两个playbook分别用于安装LAMP环境和LNMP环境cat lamp.yml---- hosts: test70 remote_user: root gather_facts: no tasks: - yum: name: mysql state: present - yum: name: php-fpm state:...原创 2020-03-30 10:11:15 · 695 阅读 · 0 评论 -
Ansible—— 36. lookup插件
过滤器其实是ansible中的一种插件,除了过滤器,ansible中还有tests、Inventory、Connection、循环插件,循环插件也叫做"lookup插件"---- hosts: test70 remote_user: root gather_facts: no tasks: - debug: msg: "index is {{item.0}} , v...原创 2020-03-30 09:49:02 · 482 阅读 · 0 评论 -
Ansible—— 35. playbook 过滤器
1. 过滤器初识获取到的变量的值中的所有字母都变成大写---- hosts: test70 remote_user: root gather_facts: no vars: testvar: 1a2b3c tasks: - debug: msg: "{{ testvar | upper }}"2. 字符串过滤器---- hosts: test7...原创 2020-03-28 12:30:03 · 526 阅读 · 0 评论 -
Ansible—— 34. playbook 错误处理
在编写shell脚本时,有可能会有这样的需求,当脚本执行到某个阶段时,需要对某个条件进行判断,如果条件成立,则立即终止脚本的运行,在 shell脚本中实现这个需求很简单,只需要在条件成立时调用"exit"命令即可终止脚本的运行。在执行playbook时,如果playbook中的任何一个任务执行失败,playbook都会停止运行,除非这个任务设置 了"ignore_errors: true",在任...原创 2020-03-28 11:32:45 · 1786 阅读 · 0 评论 -
Ansible—— 33. playbook 条件判断
第四节:Ansible系列之条件判断使用when关键字,当when后面指定的条件满足时,该tasks中指定的某个任务才会被执行1)When语句在when后面使用表达式,当表达式结果为True则执行案例:tasks:name: “shut down Debian flavored systems”command: /sbin/shutdown -t nowwhen: ansibl...原创 2020-03-28 11:13:42 · 3142 阅读 · 0 评论 -
Ansible—— 32. playbook 循环
主机清单10.1.1.60test70.zsythink.net ansible_host=10.1.1.70test71 anisble_host=10.1.1.71 [testA]test60 ansible_host=10.1.1.60test61 ansible_host=10.1.1.61 [testB]test70 ansible_host=10.1.1.70 ...原创 2020-03-28 09:55:48 · 296 阅读 · 0 评论 -
Ansible—— 31. playbook 常用的内置变量
1. ansible_versionansible test70 -m debug -a “msg={{ansible_version}}”2.3.45.原创 2020-03-27 19:06:32 · 2040 阅读 · 0 评论 -
Ansible—— 27. tag
当任务存在标签以后,就可以在执行playbook时,借助标签,指定执行哪些任务,或者指定不执行哪些任务了。---- hosts: test70 remote_user: root tasks: - name: task1 file: path: /testdir/t1 state: touch tags: t1 - name: task2...原创 2020-03-27 13:28:41 · 157 阅读 · 0 评论 -
Ansible—— 17. yum_repository模块
yum_repository模块可以帮助我们管理远程主机上的yum仓库。1. 参数name:必须参数,用于指定要操作的唯一的仓库ID,也就是".repo"配置文件中每个仓库对应的"中括号"内的仓库IDbaseurl:此参数用于设置yum仓库的baseurldescription:此参数用于设置仓库的注释信息,也就是".repo"配置文件中每个仓库对应的"name字段"对应的内容。file...原创 2020-03-27 12:30:02 · 269 阅读 · 0 评论 -
Ansible—— 3. 基本命令使用
1. ping主机ansible all -m ping2. 列出ansible支持的模块ansible-doc -l3. 列出模块使用帮助ansible-doc -s ping4. 列出模块简短的使用帮助ansible-doc ping5. 执行模块命令ansible testA -m fetch -a “src=/etc/fstab dest=/testdir/ansibl...原创 2020-03-27 11:18:36 · 236 阅读 · 0 评论 -
Ansible—— 29. 通过set_fact模块定义变量
set_fact模块可以在tasks中定义变量---- hosts: test70 remote_user: root vars: testvar1: test1_string tasks: - shell: "echo test2_string" register: shellreturn - set_fact: testsf1: "{{tes...原创 2020-03-26 20:17:52 · 5015 阅读 · 0 评论 -
Ansible—— 30. playbook 任务间的流程控制
1. 任务委托默认情况下,ansible所有任务都是在我们指定的机器上面运行的,当在一个独立的集群环境配置时,这并没有什么问题。而在有些情况下,比如给某台服务器发送通知或者向监控服务器中添加被监控的主机,这个时候任务就需要在特定的主机上运行,而非一开始指定的所有主机,此时就需要ansible的委托任务。使用delegate_to关键字可以配置任务在指定的服务器上执行,而其他任务还是在hosts...原创 2020-03-26 19:13:31 · 676 阅读 · 0 评论 -
Ansible—— playbook 流程控制语句
1. when条件判断关闭掉ip地址为10.0.102.162服务器上的mysql服务,如下:[root@test2 playbook]# cat test.yml --- - hosts: all remote_user: root tasks: - name: shut down the db server service: name=mysqld ...原创 2020-03-26 18:02:59 · 385 阅读 · 0 评论 -
Ansible—— playbook简单示例
--- #标记文件的开始- hosts: webservers #指定该playbook在哪个服务器上执行 vars: #表示下面是定义的变量, http_port: 80 #变量的形式,key: value,这里http_por...原创 2020-03-26 13:11:53 · 227 阅读 · 0 评论 -
Ansible—— playbook使用小技巧
1. 限定主机范围执行虽然playbook中定义了执行的主机,但是有时候我们可能仅想在定义的主机中的部分机器上执行,这时候怎么办?修改playbook中的hosts的范围,但是每次改变主机就修改一次,比较麻烦,我们可以使用–limit参数,指定该playbook在指定的主机上执行。有以下inventory文件,我们想在dbservers上执行上面测试用的playbook内容。[all]10....原创 2020-03-26 13:11:30 · 448 阅读 · 0 评论 -
Ansible—— 26. playbook handle
在系统中,我们修改了服务器的配置文件,这时候就需要重启操作服务,就可以使用到handlers。handlers: #下面定义了两个handlers - name: restart memcached service: name=memcached state=restarted - name: restar...原创 2020-03-26 13:10:17 · 208 阅读 · 0 评论 -
Ansible—— 10. command模块
第十七节: commang模块常用参数:chdir 运行command命令前先cd到这个目录creates 当指定的这个参数对应的文件存在,就不行command命令,如果不存在,那么就运行command命令案例:[admin@node1 ~]$ ansible webserver -m command -a “chdir=/tmp touch aa01.txt”[WARNING]: C...原创 2020-02-02 18:13:53 · 297 阅读 · 0 评论 -
Ansible—— 11. shell模块
shell 模块在远程主机上执行命令。与 command 模块不同的是,shell 模块在远程主机中执行命令时,会经过远程主机上的 /bin/sh 程序处理。一、常用参数free_form:required,指定需要远程执行的命令。chdir: 指定工作目录,在执行对应的命令之前,会先进入到 chdir 参数指定的目录中。creates:指定一个文件,当指定的文件存在时,就不执行对应命令。...原创 2020-02-02 18:06:21 · 730 阅读 · 0 评论 -
Ansible—— 6. blockinfile模块
blockinfile 模块在指定的文件中插入”一段文本”,这段文本是被标记过的,也就是,在这段文本上做了记号,以便在以后的操作中可以通过”标记”找到这段文本,然后修改或者删除它。一、常用参数path:required,指定要操作的文件。block:指定要操作的”一段文本”,此参数有一个别名叫”content”,使用content或block的作用是相同的。marker:在指定文件中插入一...原创 2020-02-02 17:59:25 · 641 阅读 · 0 评论 -
Ansible—— 7. lineinfile模块
lineinfile 模块在指定的文件中查找替换一行文本。一、常用参数path:required,指定要操作的文件。line: 指定查找的行文本内容。regexp:使用正则表达式匹配对应的行state:absent或present,默认值为present。backrefs:backrefs=yes开启后向引用,这样,line参数中就能对regexp参数中的分组进行后向引用了,这样说不太...原创 2020-02-02 17:26:07 · 596 阅读 · 0 评论 -
Ansible—— 8. find模块
find 模块在被管理主机中查找符合条件的文件。一、常用参数paths:required,指定查找目录,可以指定多个,路径间用逗号隔开,此参数有别名,使用别名 path 或者别名 name 可以代替 paths。recurse: 递归查找文件,默认值no。hidden:查找隐藏文件,默认值no。file_type: 指定的查找文件类型: any、directory、file、link。...原创 2020-02-02 17:11:33 · 429 阅读 · 0 评论 -
Ansible—— 9. replace模块
replace模块根据指定的正则表达式替换文件中的字符串,文件中所有被匹配到的字符串都会被替换。一、常用参数path:required,指定要操作的文件。regexp: required,指定一个 python 正则表达式,文件中与正则匹配的字符串将会被替换。replace: 指定最终要替换成的字符串。backup:是否在修改文件之前对文件进行备份,默认为no。二、示例示例1把 h...原创 2020-02-02 16:57:10 · 453 阅读 · 0 评论 -
Ansible—— 14. service模块
第七节:service模块功能:启动服务参数:arguments:给命令行提供一些选项enabled:是否开机启动 yes|noname:必选项,服务名称pattern:定义一个模式,如果通过status指令来查看服务的状态时,没有响应,就会通过ps指令在进程中根据该模式进行查找,如果匹配到,则认为该服务依然在运行runlevel:运行级别sleep:如果执行了restarted...原创 2020-02-02 16:49:56 · 356 阅读 · 0 评论 -
Ansible—— 13. cron模块
第三节:[admin@node1 ansible]$ ansible-doc -s cronname: Manage cron.d and crontab entries.cron:backup: # If set, create a backup of the crontab before it is modified. The location of the backup is ret...原创 2020-02-02 16:41:31 · 3150 阅读 · 1 评论 -
Ansible—— 16. group模块
第二节:group模块[admin@node1 ansible]$ ansible-doc -s groupname: Add or remove groupsgroup:gid: # Optional GID' to set for the group. name: # (required) Name of the group to manage. state: # Whether th...原创 2020-02-02 16:25:36 · 719 阅读 · 0 评论 -
Ansible—— 15. user模块
第一节:user模块1、查看帮助[admin@node1 ansible]$ ansible-doc -s username:state:absent(删除)present(存在)home:shell:system:uid:创建用户错误1:[admin@node1 ansible]$ ansible webserver -m user -a “name=hacluster ...原创 2020-02-02 16:21:47 · 312 阅读 · 0 评论 -
Ansible—— 19. package模块
第十四节: package模块用途: 包管理器,通过包管理器安装软件[admin@node1 tasks]$ ansible-doc -s packagename: Generic OS package managerpackage:name: # (required) Package name, or package specifier with version, like name-...原创 2020-02-02 16:05:12 · 2422 阅读 · 0 评论 -
Ansible—— 20. get_url模块
用途: 用于将文件或软件从http、https或ftp下载到本地节点上常用参数:dest: 指定将文件下载的绝对路径—必须url: 文件的下载地址(网址)—必须url_username: 用于http基本认证的用户名url_password: 用于http基本认证的密码validate_certs: 如果否,SSL证书将不会验证。这只应在使用自签名证书的个人控制站点上使用owner:...原创 2020-02-02 15:55:23 · 1912 阅读 · 0 评论 -
Ansible—— 21.stat模块
第十五节:stat模块官网:http://docs.ansible.com/ansible/latest/stat_module.html#synopsis用途:检查文件或文件系统的状态注意:对于Windows目标,请改用win_stat模块选项:path:文件/对象的完整路径(必须)案例:name: install_apcu | Check if apcu local file ...原创 2020-02-02 15:52:37 · 2847 阅读 · 0 评论 -
Ansible—— 22. debug模块
一、参数msg:输出定义好的meassage 如果没有message 默认输出Hello world!var:输出变量的内容 不可与msg选项共用二、示例- debug: msg="System {{ inventory_hostname }} has uuid {{ ansible_product_uuid }}"- debug: msg="System {{ inventory_ho...原创 2020-02-02 15:46:56 · 566 阅读 · 0 评论 -
Ansible—— 25. playbook初识
1.ansible-playbook命令行参数[root@ansible PlayBook]# ansible-playbook -h#ansible-playbook常用选项:–check or -C #只检测可能会发生的改变,但不真正执行操作–list-hosts #列出运行任务的主机–list-tags #列出playbook文件中定义所有的tags...原创 2020-02-02 12:31:46 · 426 阅读 · 0 评论 -
Ansible—— 28. 变量
第二节:Ansible系列之变量变量名约束:变量名称应为字母、数字、下划线变量名始终以字母开头变量名不能与python属性和方法名冲突定义变量的方式如下通过命令行传递变量(extra vars)ansible-playbook test.yml -e "user=louis"在inventory中定义变量(inventory vars)1)主机变量hosts.51yuk...原创 2020-02-02 10:24:57 · 712 阅读 · 0 评论 -
Ansible—— 23. setup模块
收集远程主机的信息 Gathers facts about remote hosts一、主要参数filter:条件过滤。二、示例1.获取IP地址[admin@node1 tmp]$ ansible 192.168.20.138 -m setup -a 'filter=ansible_default_ipv4'192.168.20.138 | SUCCESS => { "a...原创 2020-02-01 15:09:32 · 575 阅读 · 0 评论 -
Ansible—— 12. script模块
在本地写一个脚本,然后在远程服务器上执行。脚本一直存在于 ansible 管理主机本地,不需要手动拷贝到远程主机后再执行。一、主要参数free_form:required,指定需要执行的脚本,脚本位于 ansible 管理主机本地。chdir: 远程主机中执行工作目录。creates:指定一个远程主机中的文件,当指定的文件存在时,就不执行对应脚本。removes:指定一个远程主机中的文件...原创 2020-02-01 14:41:39 · 549 阅读 · 0 评论 -
Ansible—— 2. 主机清单inventory
1.Ansible的inventory file为/etc/ansibel/hosts,inventory file可以有多个。2.inventory文件格式ini文件风格,中括号中的字符表示组名,[webservers]node1.51yuki.cnnode2.51yuki.cnnode3.51yuki.cn[dbservers]node3.51yuki.cnnode4.51y...原创 2020-02-01 14:28:53 · 290 阅读 · 0 评论 -
Ansible—— 1. 安装
一、What Ansible1.Ansible柔和了众多其他运维工具的优先,比如pubbet和saltstack能实现的功能,Ansible的都能实现,Ansible是一款轻量级,Ansibe只是一个工具,不需要启动服务,可轻松实现分布式扩展,批量任何执行可写脚本,而且脚本不用分发到远程主机就可以执行。2.Ansible高可靠性,轻量级的自动化工具,使用python语言开发3.no agen...原创 2020-02-01 14:21:44 · 356 阅读 · 0 评论