随笔-ansible-3
关于循环的一些事:


是否是因为模块的原因?
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的更多相关文章
- Ansible随笔8
自定义模块的开发模式 1.决定自定义模块的存放路径 编辑/etc/ansible/ansible.cfg文件,修改library = /usr/share/ansible/. 这样就告诉ansible ...
- Ansible playbook API 开发 调用测试
Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...
- ansible学习
声明:本博客内容是根据惨绿少年内容实践随笔,地址:http://www.cnblogs.com/clsn/p/7743792.html#comment_form 1.ansible介绍 Ansible ...
- Ansible 利用playbook批量部署mariadb
环境说一下 192.168.30.21 ansible 192.168.30.25 client1 192.168.30.26 client2 这里我的ansible环境已经部 ...
- Ansible实现zabbix服务器agent端批量部署
项目需求:由于搭建zabbix,需要每台服务器都需要安装监控端(agent)正常的的操作是一台一台去安装,这样确实有点浪费时间,这里为大家准备了一款开源 的自动化运维工具Ansible,相信大家也很熟 ...
- 利用ansible书写playbook搭建HAProxy+Keepalived+PXC负载均衡和高可用的PXC环境续
ansible.playbook.haproxy.keepalived.PXC haproxy+keepalived双主模式调度pxc集群 HAProxy介绍 反向代理服务器,支持双机热备支持虚拟主机 ...
- 如何利用ansible callback插件对执行结果进行解析
最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...
- AI人工智能系列随笔
初探 AI人工智能系列随笔:syntaxnet 初探(1)
- 【置顶】CoreCLR系列随笔
CoreCLR配置系列 在Windows上编译和调试CoreCLR GC探索系列 C++随笔:.NET CoreCLR之GC探索(1) C++随笔:.NET CoreCLR之GC探索(2) C++随笔 ...
- C++随笔:.NET CoreCLR之GC探索(4)
今天继续来 带大家讲解CoreCLR之GC,首先我们继续看这个GCSample,这篇文章是上一篇文章的继续,如果有不清楚的,还请翻到我写的上一篇随笔.下面我们继续: // Initialize fre ...
随机推荐
- C++——函数及调用
1.函数调用:实参初始化形参:控制权交给被调函数 2.函数返回(return语句):返回return中的值:控制权交回主函数 3.参数传递 传值 传引用 传指针 初始值 不变,拷贝给形参 可变,形 ...
- 1.4 React 组件生命周期
1.4.1 组件 React 中组件有自己的生命周期方法,简单理解可以为组件从 出生(实例化) -> 激活 -> 销毁 生命周期 hook.通过这些 hook 方法可以自定义组件的特性. ...
- Mentor_丝印检查——手工绘制丝印线条(标注)到丝印位号距离的检查
http://www.eda365.com/thread-193942-1-1.html 在此之前丝印的检查基本是停留在丝印与阻焊的距离检查,而器件丝印框和手工绘制的线条与器件位号的检查都不到位,据我 ...
- 并发编程(五)——GIL全局解释器锁、死锁现象与递归锁、信号量、Event事件、线程queue
GIL.死锁现象与递归锁.信号量.Event事件.线程queue 一.GIL全局解释器锁 1.什么是全局解释器锁 GIL本质就是一把互斥锁,相当于执行权限,每个进程内都会存在一把GIL,同一进程内的多 ...
- 问题:Error running 'lugia-web': Address loaclhost:1099 is already in use
解决方法:cmd输入下面命令: 第一步: netstat -ano|findstr 1099 找到对应的pid 为3576.(每次不一样). 第二步:taskkill -f -pid 3576
- 关于 CShellManager 的作用
也许大家看到这个题目,未曾进行windows shell编程的同学呢,会不明白是什么意思,这里简单的介绍一下,windows shell就是可以使编写的程序与系统关联(如快捷方式,托盘图标等),管理系 ...
- linux 服务器修改密码
登录服务器后直接输入命令行passwd root 然后输入两次新密码就行
- JS面向对象(二)---继承
一.面向对象的继承 1.解析:在原有对象的基础上,略作修改,得到一个新的对象,并且不影响原有对象的功能 2.如何添加继承---拷贝继承 属性:call 方法: for in /* 继承:子类不影响父类 ...
- 37-Ubuntu-用户管理-02-查看用户信息
查看用户信息 序号 命令 作用 01 id 用户名 查看用户UID和GID信息 02 cat -n /etc/passwd 查看用户详细信息,参数-n显示行号 03 cat -n /etc/group ...
- htons(), ntohl(), ntohs(),htons()这4个函数(摘)
在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题.这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数.网络字节顺序与本地字节顺序之间的转换 ...