• Linux——ansible剧本


    剧本(playbook)

    现在,可以写各种临时命令

    但如果,想把所有步骤,集合到一起,写到同一个文件里

    让ansible自动按顺序执行

    就必须要写“剧本”

    剧本里面,也可以写临时命令,但是剧本有规范的文本格式

    一个剧本里(playbook)

    1.可以写多个“剧集”,每一集是一个“play”

    2.每个play里

      指明,对哪些客户机操作,操作什么,顺序

    具体格式

    1.整个playbook开头,顶头写:---(三个横杠,没有空格)

    2.往后退一层/一级,play的标题/名字

    顶头写:一个横杠一个空格name冒号名字

    ---

    - name: xxxxxxx

    3.再往下

    和上面一行的name对其

    文件名,以“.yml”结尾

    如果写完了playbook,让ansible执行:

    #ansible-playbook  xxx.yml

    可以在执行前,进行“格式检查”,不是运行检查,只检查剧本的格式

    #ansible-playbook  --syntax-check  xxx.yml

    空运行

    演练、彩排?

    能看到剧本执行的过程、流程、预期结果

    来看一些例子(用法)

    先来盘点一下,现在能写出来的,以及涉及到的

    剧本内容->模块

    yum或dnf模块

      管理软件包

      可以安装软件包,卸载软件包,更新软件包

    于是,就会有个小问题,看上面的例子

    用yum模块,指定了俩软件包httpd和firewalld

    并没写类似与install之类的选项,默认就是安装?

    其实,看最后state

    也就是说,要通过yum,保证上面列出的两个软件包,处于哪个状态……

    比如

    present保证存在,absent确保不存在

    这俩选项,比较通用,不光在yum模块里用到

    对于yum模块,还有一个latest,确保存在并且是最新版本

    再比如下面这个

    copy这个模块,通常用来传文件

    但是,看上面的例子,也可以直接把文本内容传进目标文件

    于是~给客户机生成文件,就有多种方式

    比如

    copy把整个文件,传过去

    copy把内容传过去

    lineinfile确保目标文件里有某一行内容

    继续

    关于服务

    Linux->软件包->执行->持续执行->守护进程->服务

    可用的模块:service和systemd

    state和enabled,分别管理一个服务的当前状态和开机启动设置

    再然后,关于防火墙

    主要是firewalld,不是iptables(是别的玩意)

    首先是防火墙自己也是个服务

    需要放行,每一个业务相关的其他服务

    service、state

    接下来两个不太一样

    immediate,立即生效

    permanent,永久生效(写入配置文件)

    有了各个部分的内容,包括

    安装软件、文件生成、服务启动、防火墙放行

    再然后,需要安排什么事情?

    需要编排剧本里每个部分的大顺序以及小顺序

    解决方法……

    1.停止服务,分别对a和b做

      0)可以一个playbook里,写两个play

         这两个play,分别写自己的hosts,各自包含servera和serverb

      1)用service模块或systemd

      2)name里包含httpd、mysqld

         name里包含nginx

    2.停止服务后,原来的配置文件和工作目录的文件,都还在

      0)这些文件,是否还要保留?

         关于配置文件的备份,可以在服务器本机,也可以放到远程的其他主机

         如果要有文件的备份,通常,在服务部署时就会备份一次

         至于其他时候的备份,就得按照企业的计划……

      1)如果不需要考虑文件的备份,可以直接删除软件包

         探索一个问题:通过yum或dnf安装的软件包,修改了配置文件……

                       在停止服务并且删除软件包后,配置文件还在不在?

    3.卸载软件包

      1)模块:yum或dnf

      2)state就变成了absent,也就是确保指定的软件未安装

    4.在指定的文件里,添加一行内容,不影响原有内容

      1)copy也可以,lineinfile也可以

      2)还可以?

         用command模块,执行临时命令(但是,不能保证幂等性)

  • 相关阅读:
    vue脚手架 笔记01
    Axway Titanium打包生成IPA文件的优势
    计算机毕业设计Java的大学宿舍管理系统(源码+系统+mysql数据库+lw文档)
    为什么 AI 时代更应该 Learn in Public
    11-Webpack模块打包工具
    并发与并行
    大数据如何应用于业务和决策?_光点科技
    SLAM从入门到精通(消息传递)
    Matlab复习回顾919+920预习Lab1
    Python第五章 函数
  • 原文地址:https://blog.csdn.net/Xinan_____/article/details/139675908