源分享网正式开通,我们为大家提供免费资源,欢迎大家踊跃投稿!

使用Ansible实现自动化运维的一些技巧

运维技术 青果笔记 12个月前 (06-03) 431次浏览 0个评论 扫描二维码

最近一年才有机会在生产环境上使用 Ansible。用的过程中,想把一些小技巧记录下来,避免自己忘记。如果能帮助到其他同学就更好了。如果有同学指出有更好的方法,就更更好了。

使用Ansible实现自动化运维的一些技巧

通常我们会使用 template module 来生成应用的配置,比如生成 Nginx 的配置或者 sudoers 配置。而像 sudoers 文件内的配置错误可能直接导致无法登录。所以,我们希望在生成这些配置文件后能校验一下它的正确性。如果校验失败,直接停止,不生成该配置文件。

而 template module 有一个属性 validate 就是为了实现这一需求的:

校验 Nginx 配置文件的文件:

校验 Prometheus 配置文件:

校验 Logstash 配置文件:

在部署 Zookeeper 时,通常会部署 3 台组成集群,同时每台 Zookeeper 都需要在配置一个 myid 的文本文件,而这个文件中只放id。而 id 是要求每台机器都是不同的。这时 host 变量派上用场了。定义 host 变量有两种方式:

这种方式笔者认为可维护性更高

不推荐两种方式都使用,因为变量的作用域问题会把你搞晕

某个 shell 需要一个临时变量,可以使用 environment 实现

以下方式会生成: a,a,a,a, 注意最后的逗号我们是不需要的:

这时,我们可以这样:

机器标准化要求每台机器的ssh连接方式及管理员用户名及密码都是一样的。但是事实中,面对老机器,常常做不过。所以,我们的 Ansible 脚本必须能做到不同的机器可以使用不同的连接方式、管理员用户名和密码。利用 host 变量就可以实现了。

举个例子,当前的文件内容如下:

常识和技巧之间的界限很模糊。总之,希望对读者有帮助。

1. ansible命令的使用说明

ansible 主机或组-m 模块名-a ‘模块参数’ ansible参数

表示调用什么模块,使用模块的那些参数

? 主机和组,是在/etc/ansible/hosts 里进行指定的部分,当然动态Inventory 使用的是脚本从外部应用里获取的主机;

? 模块名,可以通过ansible-doc -l 查看目前安装的模块,默认不指定时,使用的是command模块,具体可以查看/etc/ansible/ansible.cfg 的“#module_name = command ” 部分,默认模块可以在该配置文件中进行修改;

? 模块参数,可以通过 “ansible-doc -s 模块名” 查看具体的用法及后面的参数;

? ansible参数,可以通过ansible命令的帮助信息里查看到,这里有很多参数可以供选择,如是否需要输入密码、是否sudo等。


本站资源均来源于互联网,仅限于学习研究,严禁从事商业或者非法活动!丨本网站采用BY-NC-SA协议进行授权 转载请注明原文链接:使用Ansible实现自动化运维的一些技巧
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
热血江湖私发网 魔兽sf 热血江湖私服 热血江湖私服 热血江湖私服 诛仙私服 诛仙私服 诛仙私服 诛仙私服 诛仙私服 诛仙私服 诛仙私服 诛仙私服 热血江湖私服 热血江湖私服 热血江湖私服 诛仙私服 诛仙私服 诛仙私服 诛仙私服 诛仙私服 诛仙私服 诛仙私服 诛仙私服 热血江湖私服 热血江湖私服 热血江湖私服 热血江湖sf 热血江湖私发网 热血江湖私发网 热血江湖私发网 热血江湖私发网