• ansible运维自动化之playbook


    定义

    Playbook 是一个由一个或多个 play 组成的文件;play 是针对特定主机或主机组执行的一组有序的任务;每个 playbook 必须包含两部分:

    hosts: 运行 playbook 的一组主机,事先在/etc/ansible/hosts 文件中

    tasks: 需要在主机上运行的任务

    除了这两个必须选项,还有一些可选项选项,也可能需要包含在 play 中,如:

    name: play 的名称,在运行该 play 时,会在运行过程中显示

    action:后面加上[模块名称]: [空格]  [执行模块的命令]

    playbook 以 yaml 格式编写的,通常以 yml 扩展名保存。yaml 格式使用空格缩进,对于空格的数量没有特别要求,但需要注意:

    • 同一级别内的元素必须使用相同的缩进;
    • 对于子项目,缩进必须比父项目多
    • 样式如下

    运行方法

    ansible-playbook ... [options]
    运行前先给目标主机进行免密认证,否则在每次执行的时候加上-k 让后输入ssh连接密码
    常见选项
                    --check -C 只检测看是否会出现问题,不会执行
                    --limit 192.168.199.111        只限制指定ip能运行

    例一

    利用playbook在指定主机创建mysql用户
    ip已经添加到文件/etc/ansible/hosts文件中
            
    绿色代表执行成功且没有任何改变
    黄色代表执行成功且有改变
    红色代表执行失败

    例二

    变量的使用
    vim /etc/ansible/hosts,[test:vars]为公共变量,端口默认优先执行组内定义的变量,在执行公共变量,当执行.yml文件时,优先执行命令中定义的端口号
    ansible-playbook test4.yml -k -e "port=88"
    默认端口号为88

    例三

    使用192.168.199.149作为主机,在192.168.199.150,192.168.199.151上下载安装并运行nginx,s使150和151上各有三个端口可以访问不同内容,开放81,82,83端口,在150.151主机上配置html1,html2,html3目录,并在目录下配置index.html文件,并输入内容

    使用模板templates,目录结构必须如下

    192.168.199.49配置 

    配置default.conf.j2格式的文件

    执行命令,加上-k输入ssh连接密码

    此时查看150,151主机上的/etc/nginx/conf.d/default.conf文件

    150,151 的文件目录结构

    查看端口是否启动

    测试

  • 相关阅读:
    Java项目:基于jsp+servlet在线药店管理系统(含PPT)
    编译原理-总概
    js中判断一个对象是否有某个属性,存在性检查
    双十一数码产品排名,2022年双十一数码产品推荐
    《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》【大模型思维链】
    2024年湖北专升本C语言模拟试卷
    Kubernetes中使用PersistentVolume挂载云盘
    Linux之 4 种休眠模式
    Gradle复合构建
    Linux系统使用AndroidStudio创建桌面快捷键
  • 原文地址:https://blog.csdn.net/m0_68858390/article/details/136585611