整站优化网站,什么博客可以做网站,流量最大的网站,网站域名空间多少钱一、playbook
playbook是剧本的意思
通过 task 调用 ansible 的模块将多个 play 组织在一 个playbook中运行。
playbook本身由以下各部分组成#xff1a;
Tasks: 任务#xff0c;即调用模块完成的某操作Variables: 变量Templates: 模板Handlers: 处理器#xff0c;当某条…一、playbook
playbook是剧本的意思
通过 task 调用 ansible 的模块将多个 play 组织在一 个playbook中运行。
playbook本身由以下各部分组成
Tasks: 任务即调用模块完成的某操作Variables: 变量Templates: 模板Handlers: 处理器当某条件满足时触发执行的操作Roles: 角色playbook yaml语法是换行空两格-和:后必须空一格
playbook由YMAL语言编写YAML是一种非标记语言。是用来写配置文件的语言非常简洁合强大
YAML语法和其他语言类似也可以表达散列表、标量等数据结构结构通过空格来展示序列里配置项通过 - 来表示Map里的键值用来分隔YAML的扩展名为yaml
1.1、playbook简介
Playbooks 是 Ansible的配置、部署、编排语言他们可以被描述为一个需要希望远程主机执行命令的方案或者一组IT程序运行的命令集合Playbooks 与 ad-hoc相比,是一种完全不同的运用ansible的方式,是非常之强大的简单来说playbooks是一种简单的配置管理系统与多机器部署系统的基础与现有的其他系统有不同之处且非常适合于复杂应用的部署。playbook是ansible用于配置部署和管理被控节点的剧本。通过playbook的详细描述执行其中的一系列tasks可以让远端主机达到预期的状态。playbook就像Ansible控制器给被控节点列出的的一系列to-do-list而被控节点必须要完成。也可以这么理解playbook 字面意思即剧本现实中由演员按照剧本表演在Ansible中这次由计算机进行表演由计算机安装部署应用提供对外服务以及组织计算机处理各种各样的事情
1.2、playbook使用场景
执行一些简单的任务使用ad-hoc命令可以方便的解决问题但是有时一个设施过于复杂需要大量的操作时候执行的ad-hoc命令是不适合的这时最好使用playbook。 就像执行shell命令与写shell脚本一样也可以理解为批处理任务不过playbook有自己的语法格式。 使用playbook你可以方便的重用这些代码可以移植到不同的机器上面像函数一样最大化的利用代码。在你使用Ansible的过程中你也会发现你所处理的大部分操作都是编写playbook。可以把常见的应用都编写成playbook之后管理服务器会变得十分简单。
1.3、yaml基本语法规则
1、大小写敏感 2、使用缩进表示层级关系 3、缩进时不允许使用tab键、只允许使用空格 4、缩进的空格数目不重要只要相同层级的元素左侧对齐即可
hosts定义节点可以是组remote_user是你以什么用户身份进行登陆tasks是你的任务become:yes表示切换用户become_user: mysql表示切换到mysql用户配合上一条使用- name:为下面执行的操作起名
1.4、yaml支持的数据结构
对象键值对的集合又被映射mapping/ 哈希hashes/ 字典dictionary属组一组按次序排列的值又称为序列sequence/ 列表list纯量单个的、不可再分的值
二、Inventory中的变量
Inventory是Ansible管理主机信息的配置文件相当于系统HOSTS文件的功能默认存放在/etc/ansible/hosts
2.1、Inventory变量参数
参数说明ansible_ssh_host将要连接的远程主机名与你想要设定的主机的别名不同的话可通过此变量设置ansible_ssh_portssh端口号如果不是默认的端口号通过此变量设置ansible_ssh_user默认的ssh用户名ansible_ssh_passssh密码这种方式并不安全我们强烈建议使用 --ask-pass或SSH密钥ansible_ssh_private_key_filessh使用的私钥文件适用于有多个密钥而你不想使用SSH代理的情况ansible_ssh_common_args此设置附加到sftp,scp和ssh的缺省命令行ansible_sftp_extra_args此设置附加到默认sftp命令行ansible_scp_extra_args此设置附加到默认scp命令行ansible_ssh_extra_args此设置附加到默认ssh命令行ansible_ssh_pipelining确定是否使用SSH管道。这可以覆盖ansible.cfg中得到设置ansible_shell_type目标系统的shell类型默认情况下命令的执行使用sh语法可设置为csh 或 fishansible_python_interpreter目标主机的python路径适用于的情况系统中有多个python或者命令路径不是“/usr/bin/python”ansible_*_interpreter这里的*可以是ruby或perl或其他语言的解释器作用和ansible_python_interpreter类似ansible_shell_executable这将设置ansible控制器将在目标机器上使用的shell覆盖ansible.cfg中的配置默认为/bin/sh
三、playbook示例
基本命令介绍
ansible-playbook xxx.yaml --syntax-check #检查yaml文件的语法是否正确
ansible-playbook xxx.yaml --list-task #检查tasks任务
ansible-playbook xxx.yaml --list-hosts #检查生效的主机
ansible-playbook xxx.yaml --start-at-taskxxx #指定从某个task开始运行- hosts: nginx #指定主机组可以是一个或多个组remote_user: root #指定远程主机执行的用户名
说明-k-ask-pass用来交互输入ssh密码-K-ask-become-pass用来交互输入sudo密码-u指定用户-e 引入变量值
正在加载...