关于循环的一些事:

是否是因为模块的原因?

item适用于copy,但不适用于yum。虽然出现了警告,但并不表示不能用。功能还是不受影响的。

在上例中,我们使用了yum、copy、service模块(service模块未体现),共同完成了Apache服务的安装、配置、运行状态维护这三步。

当我们重复执行一个playbook时,当ansible发现系统的现有状态与playbook所定义的将要实现的状态一致时,ansible会自动跳过该步骤。

举例:

假如目标主机已经启动了httpd,而playbook中想要启动目标主机上的httpd,当ansible发现这种情况后,就会跳过去。

如果是shell脚本,它不会判断,而是直接再启动一遍。(虽然我们可以加上if判断)

执行playbook时的用户选择:

(1)playbook中的users字段

(2)inventory中定义的用户

(3)默认使用当前系统用户身份来通过SSH连接远程主机,在远程主机中运行play内容

也可以在命令行上指定:

ansible-playbook playbook.yml --remote-user=ming

--ask-sudo-pass

假如我们在控制机上执行命令,它会在远程主机上执行。如果在远程主机上通过sudo执行命令时,需要输入密码,那么我们

就要添加--ask-sudo-pass选项,方便我们在控制机上输入密码,传递到远程主机。

举例:

在控制机上,我是以tom登录的,所以我的身份是tom。我现在执行一个playbook,但我希望在客户端上执行这个playbook时,

以jerry的身份来执行。

也就是说,在客户端上,得先sudo jerry,然后再执行playbook。所以这里要加上--sudo,--sudo-user=jerry,--ask-sudo-pass

这三个选项。第一个是开启sudo,第二个是sudo到谁,第三个是传递jerry的密码,这样tom才能以jerry的身份执行命令。

ansible-playbook的其他选项技巧:

--inventory=PATH(-i PATH):指定inventory文件,默认是/etc/ansible/hosts。

--verbose(-v):显示详细输出,也可以使用-vvvv显示更详细的输出。

--extra-vars=VARS(-e VARS):定义在playbook中使用的变量,格式为key=value,key=value。

--forks=NUM(-f NUM):指定并发执行的任务数,默认为5。根据服务器性能,调大这个值可提高ansible执行效率。

--connection=TYPE(-c TYPE):指定连接远程主机的方式,默认为SSH,设置为local时,表示只在本地执行playbook。

--check:检测模式。

新模块混个脸熟:

nodejs应用部署后的总结:

(1)写yml的过程就好像在一条一条地执行命令。跟着思路,就慢慢写出来了。先干什么,再干什么,最后再干什么。

(2)一个nodejs应用可以很好管理的,以后可以快速搭建在其他服务器上,只需要一条命令即可。

开始部署另一个应用:drupal

在这个主文件中,需要引入vars.yml文件,这样后面的变量就知道到哪来去寻找变量值了。

现在,我们来看看模板文件:drupal.dev.conf.j2的内容。

看到文件中定义了变量,所以我们要填充这些变量。单独写一个文件vars.yml:

这样,不管变量是定义在主文件中,还是模板文件drupal.dev.conf.j2还是其他地方,都能到vars.yml中去寻找值了。

目前只是安装了apache,且准备好了配置文件,现在开始配置php。

介绍ansible的另一个模块:lineinfile,专门用于编辑文件内容。

开启PHP的apc.rfc1867选项,确保APC支持上传进度。

最后,再来配置mysql。

删除无用的库test,同时创建新库。利用了mysql_db模块。这又是一个新库。

然后开始利用drush和git安装drupal。

还需要在vars.yml中加一个变量:

drupal_site_name: "D8 Test"

drupal的安装过程总结:

涉及到的模块:

template模块

file模块

lineinfile模块

mysql_db模块

get_url模块

git模块

第三块实验:部署tomcat应用

上面这些例子都是在部署一些应用程序,按照步骤就可以了。其他的应用依葫芦画瓢即可。

随笔-ansible-3的更多相关文章

  1. Ansible随笔8

    自定义模块的开发模式 1.决定自定义模块的存放路径 编辑/etc/ansible/ansible.cfg文件,修改library = /usr/share/ansible/. 这样就告诉ansible ...

  2. Ansible playbook API 开发 调用测试

    Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...

  3. ansible学习

    声明:本博客内容是根据惨绿少年内容实践随笔,地址:http://www.cnblogs.com/clsn/p/7743792.html#comment_form 1.ansible介绍 Ansible ...

  4. Ansible 利用playbook批量部署mariadb

    环境说一下 192.168.30.21     ansible 192.168.30.25     client1 192.168.30.26     client2 这里我的ansible环境已经部 ...

  5. Ansible实现zabbix服务器agent端批量部署

    项目需求:由于搭建zabbix,需要每台服务器都需要安装监控端(agent)正常的的操作是一台一台去安装,这样确实有点浪费时间,这里为大家准备了一款开源 的自动化运维工具Ansible,相信大家也很熟 ...

  6. 利用ansible书写playbook搭建HAProxy+Keepalived+PXC负载均衡和高可用的PXC环境续

    ansible.playbook.haproxy.keepalived.PXC haproxy+keepalived双主模式调度pxc集群 HAProxy介绍 反向代理服务器,支持双机热备支持虚拟主机 ...

  7. 如何利用ansible callback插件对执行结果进行解析

    最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...

  8. AI人工智能系列随笔

    初探 AI人工智能系列随笔:syntaxnet 初探(1)

  9. 【置顶】CoreCLR系列随笔

    CoreCLR配置系列 在Windows上编译和调试CoreCLR GC探索系列 C++随笔:.NET CoreCLR之GC探索(1) C++随笔:.NET CoreCLR之GC探索(2) C++随笔 ...

  10. C++随笔:.NET CoreCLR之GC探索(4)

    今天继续来 带大家讲解CoreCLR之GC,首先我们继续看这个GCSample,这篇文章是上一篇文章的继续,如果有不清楚的,还请翻到我写的上一篇随笔.下面我们继续: // Initialize fre ...

随机推荐

  1. Delphi多线程详解

    (整理自网络) Delphi多线程处理 1-1多线程的基本概念 WIN 98/NT/2000/XP 是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用CPU 运行时间和资源,或者 ...

  2. 前端(二十)—— vue介绍:引用vue、vue实例、实例生命周期钩子

    vue 一.认识Vue 定义:一个构建数据驱动的 web 界面的渐进式框架 优点: 1.可以完全通过客户端浏览器渲染页面,服务器端只提供数据 2.方便构建单页面应用程序(SPA) 3.数据驱动 =&g ...

  3. JHipster研究

    liquibase工作原理: master.xml用来维护所有变更记录文件引用 changelog文件夹用来保存具体的变更细节 系统启动时会比较master.xml中include的file,应用差异 ...

  4. selenium3与Python3实战 web自动化测试框架✍✍✍

    selenium3与Python3实战 web自动化测试框架  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课 ...

  5. Mybatis_环境搭建

    1.配置pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  6. 前端 css 补充内容

    给个菜鸟教程的css教程网址(全的狠!!!): https://www.runoob.com/css/css-tutorial.html 下面是几张css基础样式图:

  7. codeforces 24d Broken robot 期望+高斯消元

    题目传送门 题意:在n*m的网格上,有一个机器人从(x,y)出发,每次等概率的向右.向左.向下走一步或者留在原地,在最左边时不能向右走,最右边时不能像左走.问走到最后一行的期望. 思路:显然倒着算期望 ...

  8. 数组去重Set也可实现

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Android开发 MediaPlayer入门_播放本地视频

    前言 MediaPlayer,可以播放视频/音频,并且它支持本地和网络文件的播放.本片博客作为入门教程,先以最通俗的方式解释播放文件本地视频.(如果你嫌MediaPlayer还是太麻烦可以试试选择Vi ...

  10. ES6形参默认值

    * 形参的默认值----当不传入参数的时候默认使用形参里的默认值 function Point(x = ,y = ) { this.x = x; this.y = y; } //定义一个点的坐标 fu ...