playbook

ansible基础-roles

穿精又带淫゛_ 提交于 2020-02-17 18:27:40
一 简介 注:本文demo使用ansible2.7稳定版 在我看来,role是task文件、变量文件、handlers文件的集合体,这个集合体的显著特点是: 可移植性和可重复执行性。 实践中,通常我们以 部署某个服务 为单元作为一个role ,然后将这些服务单元(role)放在一个roles目录下。主playbook文件通过调用roles目录下的role,来实现各种灵活多变的部署需求。 本节主要为大家介绍下roles的目录结构、引用方法及其他特性。 二 创建与目录结构 2.1 创建roles 通常创建一个role的方法有两种: 命令mkdir和touch行手动创建 使用ansible-galaxy自动初始化一个role 命令行手动创建方式就无需多说了,即需要哪个目录和文件就用「mkdir」和「touch」命令创建出来。 我个人比较喜欢使用「ansible-galaxy」命令创建,创建完后再删除我不需要的目录,这样可以避免因手误创建出错的问题。 例如,我想使用「ansible-galaxy init」命令创建一个名字为role_A 的role,可以这样写: ➜ lab-ansible ansible-galaxy init role_A - role_A was created successfully 创建后的目录结构如下: ➜ lab-ansible tree role_A

Ansible——playbook

那年仲夏 提交于 2020-02-08 09:44:03
1.ansible-playbook命令行参数 [root@ansible PlayBook]# ansible-playbook -h #ansible-playbook常用选项: –check or -C #只检测可能会发生的改变,但不真正执行操作 –list-hosts #列出运行任务的主机 –list-tags #列出playbook文件中定义所有的tags –list-tasks #列出playbook文件中定义的所以任务集 –limit #主机列表 只针对主机列表中的某个主机或者某个组执行 -f #指定并发数,默认为5个 -t #指定tags运行,运行某一个或者多个tags。(前提playbook中有定义tags) -v #显示过程 -vv -vvv更详细 2.playbook系统元素 hosts、remote_user、tasks、name、 sudo_user、sudo、handlers、notify、tags、template、when、with_items hosts 执行的远程主机列表,hosts 行的内容是一个或多个组或主机的 patterns,以逗号为分隔符。 hosts: 192.168.1.71,master,webs remote_use 可以在hosts下,定义远程执行用户,也可以在某一个tasks中定义要执行该任务的远程用户 tasks、name

Ansible剧本管理(实例解释!!!)

纵然是瞬间 提交于 2020-02-03 23:12:04
inventory主机清单 ansible默认的主机清单是/etc/ansible/hosts文件,主机清单可以手动设置,也可以通过Dynamic Inventory动态生成,一般主机名使用FQDN vim /etc/ansible/hosts [webserver] #方括号设置组名 www1.example.org #定义被监控主机,这边可以是主机名也可以是IP地址,主机名需要修改/etc/hosts文件 www2.example.org:2222 #冒号后定义远程连接端口,默认是ssh的22端口 如果是名称类似的主机,可以使用列表的方式标识各个主机 [webserver] www[01:50].example.org ansible_ssh_user=root ansible_ssh_pass=123456 [dbbservers] db-[a:f].example.org inventory变量 主机变量 [webserver] www1.magedu.com http_port=80 maxRequestsChild=808 www2.magedu.com http_port=8080 maxRequestsChild=909 组变量 [servers:vars] ntp_server=ntp.example.org nfs_server=nfs.example.org

Ansible Playbooks基本使用

烈酒焚心 提交于 2020-01-29 18:56:29
你将学到什么 如何使用playbook 如何编写playbook 如何使用roles PlayBook使用 基础环境 ### 64 位 Ubuntu 16.04 LTS,创建CentOS LXC容器web模拟托管节点 # ssh-keygen -t rsa # apt-get install lxc # apt-get install yum # lxc-create -n centos -t centos -- -R 7 ### 修改centos模板root密码 # chroot /var/lib/lxc/centos/rootfs passwd # lxc-copy -n centos -N web -B aufs -s # lxc-start -n web -d ### 进入容器 # lxc-console -n web ### 下面命令都在容器中执行,修改IP地址为10.0.3.200 # vi ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes HOSTNAME=centos NM_CONTROLLED=no TYPE=Ethernet NAME=eth0 IPADDR=10.0.3.200 NETMASK=255.255.255.0 GATEWAY=10.0.3.1 DNS1=114.114.114.114

中小型企业通用自动化运维架构【视频教程】

让人想犯罪 __ 提交于 2020-01-08 21:27:23
第1章 自动化运维架构 主要讲解了自动化运维的概念,分析了现在的自动化运维的面临的挑战。基于我对自动运维的理解,提出了中小企业自动化运维架构,并讲解了该架构。后续的章节,主要是实现这个架构。 1-1 课程介绍 试看 1-2 自动化运维流程 第2章 服务器批量管理 Ansible Ansible作为一个优秀的IT资产管理、配置工具,这一章主要讲解了Ansible的使用,包括Ansible的安装、配置、使用,并且在课程的最后,结合我们公司业务的需求,实际演示了如何使用Ansible Playbook功能实现Zabbix的安装。 2-1 Ansible的介绍及流程 2-2 Ansible安装配置 2-3 Ad-hoc和Inventory的基本使用 2-4 使用ansible实战MySQL安装操作 2-5 什么是Ansible playbook 2-6 使用playbook完成一个helloword以及介绍playbook的基本结构 2-7 使用playbook实战Python环境的安装 2-8 Ansible实战安装Zabbix_Shell版 2-9 Ansible实战安装Zabbix_Playbook版 第3章 监控报警 Zabbix Zabbix作为一个非常强大的监控管理工具,这一章主要讲解的Zabbix的安装、配置,介绍了Zabbix的主要功能和使用方法,并且在课程的最后

ansible-playbook详解与简单应用

感情迁移 提交于 2020-01-08 19:13:36
一、什么是playbook playbooks是一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。 简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。 Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。 值得注意的是playbook是通过YAML格式来进行描述定义的。 playbook是由一个或多个模块组成的,使用多个不同的模块,完成一件事情。 playbook通过yaml语法识别描述的状态文件。扩展名是yaml 二、YAML语法 缩进: YAML使用一个固定的缩进风格表示层级结构,每个缩进由两个空格组成, 不能使用tab 冒号: 以冒号结尾的除外,其他所有冒号后面所有必须有空格。 短横线: 表示列表项,使用一个短横杠加一个空格。 多个项使用同样的缩进级别作为同一列表。 三、核心元素 Tasks:任务,由模板定义的操作列表 Variables:变量 Templates:模板,即使用模板语法的文件 Handlers:处理器 ,当某条件满足时,触发执行的操作 Roles:角色 四、hosts和users介绍 --- - hosts: all #可以是一个主机组、主机、多个主机,中间以冒号分隔,也可以用all参数表示所有主机 remote_user:

Android - AdSense in WebView (for BlackBerry Playbook - Android Runtime)

别说谁变了你拦得住时间么 提交于 2020-01-02 03:32:06
问题 I would like to diplay AdSense Ads in A WebView in Android. I know I could just take AdMob Ads but I am Developing for the Playbook and the Playbook has just got an Android Virtual Runtime, therefore most of the AdMob ads are not displayed because they target an Android App on the Play Store and because the Playbook hasnt got a Play Store, it won't show up. So I would rather user AdSense Ads, but I don't know how to use them, I ave got no experience in Web Development. Can someone give me

ansible学习

假如想象 提交于 2019-12-27 01:49:58
ansible 与salt对比 相同 都是为了同时在多台机器上执行相同的命令 都是python开发 不同 agent(saltstack需要安装、ansible不需要) 配置(salt配置麻烦,ansible基本不用配置) 学习路线(salt比较陡峭,ansible比较平缓) 第三方工具(salt比较少) 开源社区的对接(salt比较少) 现有用户(salt还是ansible少一些) 二次开发扩展的能力(ansible比较差,尤其是2.0以后) 大规模并发(200以内一样,200以上salt会好一些,当然我们也可以对ansible做一些配置使其在200以上追上salt) Windows的支持(salt会好很多) 安装 yum install -y ansible 查看ansible生成的命令,用到的命令 ansible ansible-doc ansible-galaxy(下载第三方插件) ansible-playbook 查看ansible 安装生成的 rpm -ql ansible |more /etc/ansible /etc/ansible/ansible.cfg #配置文件 /etc/ansible/hosts #主要文件 hosts文件详解 cat /etc/ansible/hosts # This is the default ansible 'hosts' file

Ansible自动化运维笔记3(playbook)

只谈情不闲聊 提交于 2019-12-27 01:47:07
1.基本语法 playbook文件格式为yaml语法.示例如下: 1.1 nginx.yaml --- - hosts: all tasks: - name: Install Nginx Package yum: name=nginx state=present - name: Copy Nginx.conf template: src=./nginx.conf.j2 dest=/etc/nginx/nginx.conf owner=root group=root mode=0644 validate='nginx -t -c %s' notify: - Restart Nginx Service handlers: - name: Restart Nginx Service service: name=nginx state=restarted ---第一行表示该文件是yaml文件,非必须,建议写上 hosts:all 定义该playbook针对的目标主机,all表示针对所有主机,这个参数支持Ad-Hoc模式的所有参数 tasks: 定义该playbook所有的tasks集合 name: Install Nginx Package定义一个task的名称,建议根据task实际任务命名 yum: name=nginx state=present 定义一个状态的action

Ansible 小手册系列 十(包含和角色)

冷暖自知 提交于 2019-12-27 01:45:17
一、包含 (include) 使用 include 模块来包含foo文件 tasks: - include: foo.yml --- foo.yml - name: test foo command: echo foo    include 还允许传递变量 - include: wordpress.yml wp_user=timmy - include: wordpress.yml vars: wp_user: timmy ssh_keys: - keys/one.txt - keys/two.txt    动态包含 循环引用3次 - include: foo.yml param={{item}} with_items: - 1 - 2 - 3    还可以使用动态变量引入task文件 - include: "{{inventory_hostname}}.yml"    动态包含的一些限制 • 您不能使用notify触发来自动态包含的处理程序名称。 • 您不能使用--start-at-task在动态包含内的任务开始执行。 • 仅存在于动态包含内的标记不会显示在-list-tags输出中。 • 只存在于动态包含内的任务将不会显示在-list-tasks输出中。 为了解决上面限制,2.1版本后引入了 static - include: foo.yml static: <yes|no