ansible register 这个功能非常有用.当我们需要判断对执行了某个操作或者某个命令后,如何做相应的响应处理(执行其他 ansible 语句),则一般会用到register . 举个例子: 我们需要判断sda6是否存在,如果存在了就执行一些相应的脚本,则可以为该判断注册一个register变量,并用它来判断是否存在,存在返回 succeeded, 失败就是 failed. ansible执行完命令后的rc=0是什么意思? 命令返回值 returncode tasks:         …
登陆返回的是 result.Succeeded 为什么跳转到其他页面SignInManager.IsSignedIn(User)为false呢? result.Succeeded _signInManager.IsSignedIn false 最后发现是配置了全球化,加了app.UseMvcWithDefaultRoute()这个导致的 --------------------------------------------------------------- 0729,今天又出现了一次,参考…
1.错误描述 QueryError:Incorrect result size: expected 1, actual 0 2.错误原因 3.解决办法…
往数据库中插入数据时报错:   www.2cto.com   ORA-00001: unique constraint (IDX_CARTON_HEADER)violated.   即往CARTON_HEADER中插入数据时,有一列有唯一性约束, 插入数据的那一列值和数据库中原有的那一列值重复了,所以报错   查看CARTON_HEADER,发现CODE那一列设置了唯一性约束, 把CODE值改成唯一的就OK了. ------------------------------------------…
当我们需要判断对执行了某个操作或者某个命令后,如何做相应的响应处理(执行其他 ansible 语句),则一般会用到register . 举个例子: 我们需要判断 zip 包是否存在,如果存在了就执行一些相应的脚本,则可以为该判断注册一个register变量,并用它来判断是否存在,存在返回 succeeded, 失败就是 failed. - name:Copy test.zip to hosts copy: src=/mnt/patches/test.zip dest=/mnt/patches r…
两种方案: 用queryForList方法替换queryForObject或者queryForMap,因为这两个方法必须要有值,不能为空. 把这个异常捕获,用try/catch. 这个查询的结果是null,没有数据所以就提示acual 为0.而查询的时候是期望查询有结果有记录,并且记录数是1. spring 这个查询中没有查询到数据就报错.解决方案就是要查询有结果,或者换一种查询方式.…
条件判断 When 语句 在when 后面使用Jinja2 表达式,结果为True则执行任务. tasks: - name: "shut down Debian flavored systems" command: /sbin/shutdown -t now when: ansible_os_family == "Debian" 若操作系统是Debian 时就执行关机操作 可以对条件进行分组在比较. tasks: - name: "shut down Ce…
 转载自:http://xdays.me/ansible状态管理.html 简介 就像所有服务器批量管理工具(puppet有DSL,salt有state)一样,ansible也有自己的状态管理组件,叫做playbook.所有这些类似的概念的东西都是让你用一种更简单的语言(而不是用脚本)来描述你的服务应该是什么样子的,然后这些工具根据你的描述将服务器变成你希望的样子.有了这么一层抽象后,服务部署和配置就变得更加的跨平台了,也提高了可复用性.但请注意,playbook不是万能的,因为playbo…
Ansible的循环 1.       前言 有可能在一个任务中,可能要做很多事情,例如创建多个用户,安装很多个包等,那么就有可能用到循环. 2.       标准循环 重复的任务可以用下面的方式: - name: add several users user: name={{ item }} state=present groups=wheel with_items: - testuser1 - testuser2 如果你定义了一个变量文件创建了一个YAML的列表,或者是在var节中,那么可以…
一:为什么选择Ansible 相对于puppet和saltstack,ansible无需客户端,更轻量级 ansible甚至都不用启动服务,仅仅只是一个工具,可以很轻松的实现分布式扩展 更强的远程命令执行操作 不输于puppet和saltstack的其他功能 二:Ansible基本架构 三:Asible基本组成 核心:ansible 核心模块(Core Modules):这些都是ansible自带的模块 扩展模块(Custom Modules):如果核心模块不足以完成某种功能, 可以添加扩展模块…
Standard Loops 为了节省一些打字,重复的任务可以写成如下: - name: add several users user: name: "{{ item }}" state: present groups: "wheel" with_items: - testuser1 - testuser2 如果您在变量文件或“vars”部分中定义了YAML列表,则还可以执行以下操作: with_items: "{{ somelist }}" 相…
Standard Loops with_items - name: add several users user: name={{ item }} state=present groups=wheel with_items: - testuser1 - testuser2 # with_items: somelist - name: add several users user: name={{ item.name }} state=present groups={{ item.groups }…
在一个task中循环某个操作 1.标准循环 - name: add several users user: name: "{{ item }}" state: present groups: "wheel" loop: - testuser1 - testuser2 #如果已经在变量文件中,定义了yaml列表,可以这么写 loop: "{{ somelist }}" note:在2.5 Ansible之前主要使用with_ <lookup&…
PlayBook语法实例 playbook是由一个或多个play组成的列表,play的主要功能在于将事先归并为一组的主机装扮成事先通过Ansible中的tasks定义好的角色(play的内容被称为tasks,即任务),从根本上来讲所谓tasks无非是调用Ansible的一个module,将多个play组织在一个playbook中即可以让它们联同起来按事先编排的机制一同工作. 下面来看一个基础的playbook,其中只包含一个tasks任务: --- - hosts: web_server #指定…
ansible源文档地址 有时候你想多次重复一个任务. 在计算机编程中,这叫做循环. 常见的 Ansible 循环包括使用文件模块更改几个文件和 / 或目录的所有权,使用用户模块创建多个用户,并重复一个轮询步骤,直到达到某个结果. 为创建循环提供了两个关键字: loop 和 with_<lookup>. 注意 我们增加在Ansible2.5版本中中加了loop.它还没有完全取代with_<lookup>, 但我们推荐在大多数场景下使用它. 我们并舍弃with_<lookup&…
一.Playbook 简介 Playbooks与Ad-Hoc相比,是一种完全不同的运用Ansible的方式,而且是非常之强大的:也是系统ansible命令的集合,其利用yaml语言编写,运行过程,ansbile-playbook命令根据自上而下的顺序依次执行. 简单来说,Playbooks 是一种简单的配置管理系统与多机器部署系统的基础.与现有的其他系统有不同之处,且非常适合于复杂应用的部署. 同时,Playbooks开创了很多特性,它可以允许你传输某个命令的状态到后面的指令,如你可以从一台机器…
常用模块 Ansible默认提供了很多模块来供我们使用.在Linux中,我们可以通过 ansible-doc -l 命令查看到当前Ansible支持哪些模块,通过 ansible-doc -s [模块名] 又可以查看该模块有哪些参数可以使用. ansible [主机或组] -m [模块名] -a ['模块参数'] [ansible参数] ansible-doc -l # 命令查看到当前 ansible 都支持哪些模块 ansible-doc -s [模块名] # 查看该模块有哪些参数可以使用 自…
一 Ad-Hoc使用场景 Ad-Hoc更倾向于解决简单.临时性任务. 1.1 Ad-Hoc基础命令 基本语法: 1 ansible <host-pattern> [options] <host-pattern>:指Inventory中定义的主机或主机组,可以为ip.hostname.Inventory中的group组名等.同时支持具有“.”.“*”或“:”等特殊字符的匹配型字符串. 提示:<>表示该选项为必选,[]表述是该选项中的参数任选其一或多个. 1 [option…
Ansible命令使用 Ansible语法使用ansible <pattern_goes_here> -m <module_name> -a <arguments> -m NAME,–module-name=NAME:指定执行使用的模块 -u USERNAME,–user=USERNAME:指定远程主机以USERNAME运行命令 -s,–sudo:相当于Linux系统下的sudo命令 -USUDO_USERNAME,–sudo-user=SUDO_USERNAME:使用…
转载链接:http://blog.51cto.com/liqingbiao/1962609   Ansible模块按功能分为:云模块.集群模块. 命令模块.数据库模块.文件模块.资产模块.消息模块.监控模块.网络模块.通知模块.包管理模块.源码控制模块.系统模块.单元模块.web设施模块.windows模块 具体的可以参考官网(http://docs.ansible.com/ansible/latest/list_of_all_modules.html).这里从官方分类的模块里选择最常用的一些模…
1)设置主机名和hosts文件 2)配置阿里云repo源 Wget -O /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo 3)创建ssh免交互登录 [root@ansible ~]# ssh-keygen -t rsa -P "" -f .ssh/id_rsa [root@ansible ~]# sshpass -p 666666 ssh root@192.168.30.24 -o S…
目录 ANSIBLE安装和各种模块应用功能 安装配置ANSIBLE ANSIBLE使用 ansible-galaxy工具 ansible-pull工具 ansible-playbook ansible常用模块 Command 模块 shell模块 几乎可以使用系统里的所有命令,但是有的命令有更专业的模块,最好对应使用. script模块 copy模块 Fetch模块 File模块 unarchive模块 Archive模块 Hostname模块 Cron模块 Yum模块(ubantu不支持) S…
在使用ansible做自动化运维的时候,免不了的要重复执行某些操作,如:添加几个用户,创建几个MySQL用户并为之赋予权限,操作某个目录下所有文件等等.好在playbook支持循环语句,可以使得某些需求很容易而且很规范的实现. 1.with_items with_items是playbooks中最基本也是最常用的循环语句: tasks:- name:Secure config files    file: path=/etc/{{ item }} mode=0600 owner=root gro…
种类一.标准循环添加多个用户 - name: add several users user: name={{ item }} state=present groups=wheel with_items: - testuser1 - testuser2 添加多个用户,并将用户加入不同的组内. - name: add several users user: name={{ item.name }} state=present groups={{ item.groups }} with_items:…
Ansible-DevOps Ansible 搭建 CentOS7 yum install epel-release yum search ansible yum install ansible -y ansible --version pip安装 sudo easy_install pip #安装pip sudo pip install ansible --quiet #安装ansible sudo pip install ansible --upgrade #升级ansible ansibl…
一,开篇分析 Hi,大家好!大熊君又和大家见面了,还记得前两篇文章吗.主要讲述了以“jQuery的方式如何开发插件”,以及过程化设计与面向对象思想设计相结合的方式是 如何设计一个插件的,两种方式各有利弊取长补短,本系列文章是以学习为导向的,具体场景大家自己定夺使用方式.那么今天从这篇文章开始,我们就以实例 的方式带着大家由浅入深的开发属于自己的插件库.嘿嘿嘿,废话少说,进入正题.直接上实际效果图: 大家看到了吧,这是一个选项卡插件,在我们日常做那种单页应用("SPA")的时候或许会接触…
http://blog.csdn.net/wishfly/article/details/3726985 你在主线程用了WaitForSingleObject,导致了消息循环的阻塞,界面假死. 然后在线程中调用了SetDlgItemText,而SetDlgItemText实际上调用的是SendMessage, 而SendMessage要等待主线程处理完毕发送的消息才返回继续执行, 而你主线程的消息循环已经阻塞,无法处理消息,导致整个过程“我等你,你等我”,无穷下去 在界面线程不能使用Sleep和…
/** * observejs --- By dnt http://kmdjs.github.io/ * Github: https://github.com/kmdjs/observejs * MIT Licensed. * Sorrow.X --- 添加注释,注释纯属个人理解 */ ; (function(win) { var observe = function(target, arr, callback) { var _observe = function(target, arr, ca…
Inux系统标准化 配置环境:4台Centos7.6版本的虚拟机,刚刚最小化安装完成,未作任何操作,分别是node1.node2.node3.node4 本文打算利用ansible工具对这四台虚拟机进行统一配置,步骤如下: 1.配置静态IP 2.更改主机名 3.每个节点向其他节点分发自己的公钥 4.配置ansible 5.关闭Iptables和SELINUX 6.调整时区.同步时间(ntpdate),使用crontab定时同步时间 7.安装常用软件包:wget.net-tools. 8.配置VI…
商品分类模块 分类model const mongoose = require('mongoose') const schema = new mongoose.Schema({ name: { type: String, required: [true, "分类名称不能少"], unique: true }, created:{ type:Date, default: Date.now() } }); module.exports = mongoose.model('category'…