ansible:playbook学习笔记,java开发项目经理面试题答案

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

  • 2.3.7.迭代:with_items

  • 2.3.8.for循环与if条件判断

1.额外的两个小东西

===================================================================

ansible-galaxy:

  • 连接https://galaxy.ansible.com下载相应的roles

  • 列出所有安装的galaxy:ansible-galaxy list [xxx]

  • 删除galaxy:ansible-galaxy remove [xxx]

ansible-vault:

  • 对剧本进行加密:ansible-vault encrypt 剧本1

  • 对剧本进行解密:ansible-vault decrypt 剧本1

  • 查看加密后的剧本:ansible-vault view 剧本1

  • 编辑加密后的剧本:ansible-vault edit 剧本1

  • 修改加密口令:ansible-vault rekey 剧本1

  • 加密后的剧本无法运行,需要先解密


2.playbook

===================================================================

剧本中常用的模块可以看这篇:

ansible常用模块

2.1.简单了解playbook


playbook是由一个或多个“play”组成

ansible-playbook语法:

ansible-playbook [选项] 剧本1 剧本2

YAML基本语法:

  • 使用缩进表示层级关系,不允许使用Tab🗡,缩进的空格数不重要,但是一定要统一

  • 剧本后缀为".yml"或".yaml"

  • #代表注释

  • 布尔值灵活,不区分大小写的true/false;yes/no;on/off;y/n;0/1都被允许

  • 一个完整的代码块至少元素包括name:task

下面通过一个简单的例子了解一下playbook:


  • hosts: web

remote_user: root

tasks:

  • name: hello world

command: hostname

然后通过以下命令运行剧本:当然这个剧本可能没显示什么内容

ansible-playbook test.yaml

如果只想看运行效果,不实际执行,可以用这条命令:

ansible-playbook -C test.yaml

以上剧本中各行内容含义:

  • “—”没有什么特殊含义,表示这是一个剧本文件,省略也没有错误

  • hosts代表对哪些主机运行剧本,主机清单存放在/etc/ansible/hosts文件

  • remote_user表示以什么身份运行

  • tasks表示任务,可以有一个或多个

2.2.playbook核心元素


  • hosts:执行的远程主机清单

  • tasks:任务级,一个或多个

  • varniables:内置变量或自定义变量

  • templates:模板,可替换模板文件中变量实现一些逻辑的文件

  • handlers:与notity结合使用,触发器,满足条件即执行

  • tags:标签

2.3.playbook基本使用


2.3.1.忽略错误信息

如果执行剧本时由于一个可能出现的错误导致整个剧本无法继续执行,可以使用以下方法来忽略错误

  • 命令或脚本退出码不为0的情况,意思是即使错误也返回为真

tasks:

  • name: xxx

shell: 命令 ||/bin/true

  • 或使用ignore_errors忽略错误

tasks:

  • name: xxx

shell: 命令

ignore_errors: True

2.3.2.handlers和notify结合形成触发器

  • handlers:是task列表,与其他task并没有什么不同,作用于关注的资源发生改变时,处罚一定的操作。

  • notify:此action用于在每个play的最后被触发,可避免有多次发生改变时每次都执行指定操作,仅在所有的变化发生完成后一次性的执行指定操作。

tasks:

  • name: install httpd

yum: name=httpd

  • name: config file

template: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf

notify: restart service

  • name: start service

service: name=httpd state=started enabled=yes

handlers:

  • name: restart service

service: name=httpd state=restarted

以上代码中handlers与notify的含义是,当服务的配置文件发生变化时,将处罚服务的重启动作。

handlers是可以有多个的。

2.3.3.tags的使用

  • 相当于给某个action起一个标签,例如下面这个例子。

tasks:

  • name: install httpd

yum: name=httpd

tags: inhttpd

  • name: xxx

  • name: xxx

标签的效果是执行剧本时不会全部执行,只会执行带有标签的动作。

在剧本中可以多个动作共同使用一个标签。

ansible-playboos -t inhttpd httpd.yml

这个命令就是☞执行这个剧本的标签为inhttpd的一个动作,举例不好,看懂就行。

2.3.4.变量

  • 变量名:只能由字母、数字和下划线组成,且只能字母开头

变量来源:

  • ansible setup facts远程主机的所有变量可直接使用

ansible web -m setup -a ‘filter=xxx’

例:

ansible web -m setup -a ‘filter=address

  • 在主机清单中定义:可针对单独主机定义,也可针对组定义,单独主机优先级更高

下面这个例子说明了针对单台主机的变量与针对组都有效的变量。

例:

[web]

192.168.10.3 http_port=80

192.168.10.4 http_port=81

[web:vars]

nodename=www

  • 通过命令指定变量,优先级最高

ansible-playbook -e varname=value

例:

tasks:

  • name: install pkg

yum: name={{ pkgname }}

ansible-playbook -e ‘pkgname=nginx’ nginx.yml

  • 在playbook中定义

vars:

  • var1: value1

  • var2: value2

例:

vars:

  • pkgname: nginx

tasks:

  • name: install pkg

yum: name={{ pkgname }}

  • 还可以创建单独的变量文件,在剧本中引用,比如以下这个例子

#创建变量文件

vim vars.yml

var1: httpd

var2: vsftpd

#在剧本中调用变量


  • hosts: web

remote_user: root

vars_files:

  • vars.yml

#接下来就可以在剧本中调用变量了

tasks:

  • name: install pkg

yum: name={{ var1 }}

2.3.5.模板

  • 将配置文件中的一些配置信息替换成变量,传递到远端服务器时会根据主机信息生成新的配置信息

  • 使用jinja2语言,使用字面量,有字符串,数字,列表,元组,字典和布尔值等类型

#字符串

可使用单引号或双引号

#数字

可使用整数或浮点数

#列表

[item1,item2]

#元组

(item1,item2)

#字典

{key1:value1,}

#布尔值

true/false

  • 可进行算数运算:

+、-、*、/、//、%、**

  • 比较操作:

==、!=、>、<…

  • 逻辑运算:

and、or、not

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

image

上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

image

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 比较操作:

==、!=、>、<…

  • 逻辑运算:

and、or、not

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

[外链图片转存中…(img-TQkUOzfG-1713466852029)]

上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

[外链图片转存中…(img-3wmzRUXY-1713466852030)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-BypLkztf-1713466852031)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值