首页 > 其他分享 >ansible剧本-playbook核心元素

ansible剧本-playbook核心元素

时间:2023-04-11 16:36:13浏览次数:39  
标签:httpd name ansible playbook 模块 剧本 yml

ansible剧本-playbook核心元素

Cloud研习社 Cloud研习社 2023-04-08 10:33 发表于山东 收录于合集 #一站式教程220个 #ansible22个 #云计算196个 #计算机185个 #linux209个 图片图片

教程每周二、四、六更新

图片

 

  • hosts执行的远程主机列表
  • tasks任务集
  • Variables 内置变量或自定义变量在playbook中调用
  • Templates 模板,可替换模板文件中的变量并实现一些简单逻辑的文件
  • Handlers 和 notify 结合使用,由特定条件触发的操作,满足条件方才执行,否则不执行
  • tags 标签 指定某条任务执行,用于选择运行playbook中的部分代码。ansible具有幂等性,因此会自动跳过没有变化的部分,即便如此,有些代码为测试其确实没有发生变化的时间依然会非常地长。此时,如果确信其没有变化,就可以通过tags跳过此些代码片断。
我们看一下具体的用法:现在我们在远程主机上完成几个任务:创建一个新文件;把本地的first-playbook.yml 文件拷贝到远程主机;安装httpd软件;启动httpd服务;停止httpd服务;卸载httpd软件。
[root@m01 ansible]# cat integration.yml
---
- hosts: com
  tasks:
    - name: touch a new file
      file: path=/data/newfile state=touch
    - name: copy a file to remote host
      copy: src=/root/ansible/first-playbook.yml dest=/data/
    - name: install httpd
      yum: name=httpd state=installed
    - name: start httpd service
      systemd: state=started name=httpd
    - name: stop httpd service
      systemd: state=stopped name=httpd
    - name: uninstall httpd
      yum: name=httpd state=absent

# 检查一下是否有语法错误
[root@m01 ansible]# ansible-playbook integration.yml --syntax-check

playbook: integration.yml
检查没有错误就可以执行了。当然也可以写成下面的形式:
---
- hosts: com
  tasks:
    ......
    - name: uninstall httpd
      yum:
        name: httpd
        state: absent
练习:请自行修改integration.yml 中所有的task为上面这种形式,验证是否可以执行。错误处理:在执行ansible的时候,如果中间某一步骤发生错误,那么ansible脚本会终止执行,如果我们希望发生错误以后继续执行剧本,那么需要使用ignore_errors来忽略错误信息。
[root@m01 ansible]# vim integration.yml
---
- hosts: com
  tasks:
    - name: touch a new file
      file: path=/data/newfile state=touch
    - name: copy a file to remote host
      copy: src=/data/first-playbook.yml dest=/data/ # 这里故意修改为一个不存在的文件,正常情况下会报错,然后终止剧本执行,但是下面我们加了ignore_errors,剧本会继续执行。
      ignore_errors: true
    - name: install httpd
    .....
把剧本按照上面的修改保存,执行以后会发现输出信息中有红色的提示,但是最后都...ignoring,然后继续执行后续任务。对playbook有了认识了,我们下一次来看看刚才用到的ansible-playbook命令的用法。

 


 

雷哥开通了抖音(云计算雷哥)和微信视频号,求关注!!!和大家一起学习 技术!

图片

推荐阅读

 

《一站式教程之集群架构》:

 

ansible模块-cron模块

ansible模块-group模块

ansible模块-service(systemd)模块

ansible模块-user模块

ansible模块 - lineinfile模块

ansible模块 - blockinfile模块

 

 

看完本文有收获?请分享给更多人

推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!

Cloud研习社 为Linux云计算零基础同学服务,致力于打造一套完整的linux云计算教程。包括新手学习路线、linux、存储、集群架构以及Docker,K8S,DevOps等 180篇原创内容 公众号

图片


图片

 

收录于合集 #一站式教程  220个 上一篇ansible剧本-YAML语法下一篇ansible-playbook命令 阅读 60    

标签:httpd,name,ansible,playbook,模块,剧本,yml
From: https://www.cnblogs.com/cherishthepresent/p/17306681.html

相关文章

  • ansible模块实战练习
    ansible模块实战练习Cloud研习社 Cloud研习社 2023-04-0110:55 发表于山东收录于合集#一站式教程220个#计算机185个#ansible22个#云计算196个#linux209个教程每周二、四、六更新今天我们练习一下ansible模块的用法,也算是一个小复习:准备三个节点:其中一个作......
  • ansible-playbook之安装elasticsearch单机版
    一.准备环境:1.centos7环境2.安装ansible环境3.elasticsearch安装文件下载路径:  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.6.2-linux-x86_64.tar.gz4.elasticsearch安装主机,作者用192.168.126.129作为elasticsearch安装环境二.规划:1.变量规......
  • Ansible2.9安装与配置
    一、先决条件Centos7,Python2(2.7版)或Python3(3.5及更高版本), 关闭SELinux,关闭防火墙。二、安装Ansible1、yuminstallepel-release-y2、yuminstallansible-y三、配置SSH免密登录1、ssh-keygen2、[email protected]、ssh-keyscan192.168.1.2>>~/.ss......
  • ansible-galaxy命令快速创建角色框架
    在Ansible中创建角色,可以考虑使用ansible-galaxy命令快速创建角色框架。ansiblevsansible-galaxyAnsible是科幻小说银河系漫游指南中的一种超光速通讯工具,而Ansible社区的Galaxy就是类似类似dockerhub一样的存在,很多可以复用的角色(role),都在一个被称为AnsibleGalaxy的网站进......
  • 运维Ansible自动化工具概述
    运维的工作内容安装系统:pxe、kickstart、cobbler、imagetemplate安装应用、配置应用、启动应用(服务):puppet、saltstack、chef发布程序:puppet、saltstack、chef监控(服务器、系统、应用、程序):zabbix程序发布灰度发布金丝雀发布ansible解决的问题:批量安装应用、配置应用、启动应用批量......
  • ansible 部署mysql 5.7
    准备工作创建roles目录#mkdir-pv/data/apps/ansible/roles/mysql-5.7/{files,tasks,handlers,templates,vars}hosts[ubuntu]172.16.18.31ansible_ssh_port=22ansible_ssh_user=ubuntuhostname=app-01测试连通性#ansibleubuntu-mping172.16.18.247|SUCCESS=......
  • ansible 部署 docker
    准备工作创建roles目录#mkdir-pv/data/apps/ansible/roles/docker/{files,tasks,handlers,templates,vars}hosts[ubuntu]172.16.18.31ansible_ssh_port=22ansible_ssh_user=ubuntuhostname=app-01测试连通性#ansibleubuntu-mping172.16.18.247|SUCCESS=>{......
  • ansible 常用模块 copy
    模块说明该copy模块将文件从本地或远程机器复制到远程机器上的某个位置。参数说明ParameterCommentsattributes aliases:attrstringaddedinAnsible2.3生成的文件系统对象应具有的属性。要获得支持的标志,请查看目标系统上chattr的手册页......
  • Install Ansible on CentOS 8
    环境准备:1.至少俩台linux主机,一台是控制节点,一台是受控节点2.控制节点和受控节点都需要安装Python363.控制节点需要安装ansible4.控制节点需要获得受控节点的普通用户或root用户的权限,控制节点需要ssh客户端,受控节点需要ssh服务端5.控制节点和受控节点之间网络联通,配置静态ip......
  • Ansible 快速入门到放弃
    Ansible快速入门到放弃最是人间留不住,朱颜辞镜花辞树。1-Ansible简介Ansible是一个配置管理和配置工具,它使用SSH连接到服务器并运行配置好的任务,服务器上只需要开启ssh,所有工作都交给client端的ansible负责。当我们有批量部署的需求时,我们可以自己写脚本,但是更推荐使用Ansibl......