
ansible
JackLiu16
stay hungry,stay young!
展开
-
ansible的lookup插件
ansible的lookup插件可以用来从外部数据读取信息,然后付给一个变量。获取外部数据信息的种类包括:读取文件内容、随机生成password、执行shell命令、读取redis键值等等。注意,lookup的所有运算都是在ansible中控机上完成的,而不是在远程目标机上。---- hosts: test_server remote_user: root tasks: -...转载 2018-11-11 00:03:11 · 2136 阅读 · 0 评论 -
ansible开启扩展功能jinja2.ext.do
http://docs.jinkan.org/docs/jinja2/templates.html#variables 无需重启:ansible /etc/ansible/ansible.cfg执行结果:原创 2018-08-19 01:12:07 · 807 阅读 · 0 评论 -
Ansible使用jinja2管理配置文件以及jinja2语法简介(roles templates配置文件)
一、Jinja2介绍Jinja2是基于python的模板引擎,功能比较类似于PHP的smarty,J2ee的Freemarker和velocity。它能完全支持unicode,并具有集成的沙箱执行环境,应用广泛。jinja2使用BSD授权Jinja2的语法是由variables(变量)和statement(语句)组成,如下;1、variables:可以输出数据` my_variab...转载 2018-08-18 19:25:13 · 2861 阅读 · 0 评论 -
ansible的Filter
cat /usr/lib/python2.7/site-packages/jinja2/filters.py ansible中提供的过滤器FILTERS = { 'attr': do_attr, 'replace': do_replace, 'upper': do_upper,...转载 2018-08-18 19:09:27 · 2042 阅读 · 0 评论 -
ansible 获取列表变量长度
使用过滤器获取list lengthshell: "[[ {{ groups.test | length }} = 1 ]] 三种方式都可以when: - ( groups.test | lenght ) == 2when: - (( groups.test | lenght ) == 2)when: - groups.test|lenght ...原创 2018-08-18 19:02:16 · 4828 阅读 · 0 评论 -
ansible handler模块
---- include: config.yml- name: Flush handlers meta: flush_handlers用于在task完成后立即执行 task中的handlernotify与handler结合notify多个handler使用关键字listen(一)单个playbook中使用notify和handler---- name: test....转载 2018-08-15 00:24:14 · 2603 阅读 · 0 评论 -
kolla-ansible
#!/bin/bash## This script can be used to interact with kolla via ansible.function find_base_dir { local real_path=$(python -c "import os;print(os.path.realpath('$0'))") local dir_...转载 2018-08-14 23:57:09 · 946 阅读 · 0 评论 -
Ansible之roles介绍
本节内容:什么场景下会用roles? roles示例 一、什么场景下会用roles?假如我们现在有3个被管理主机,第一个要配置成httpd,第二个要配置成php服务器,第三个要配置成MySQL服务器。我们如何来定义playbook?第一个play用到第一个主机上,用来构建httpd,第二个play用到第二个主机上,用来构建php,第三个play用到第三个主机上,用来构建MySQ...转载 2018-08-14 23:56:15 · 261 阅读 · 0 评论 -
Ansible(14)wait_for模块
wait_for 只是用来在规定时间内检测,状态是否为所期望的状态是才,才执行后续的操作如:- name: Checking free port for transfer wait_for: host: {{ inventory_hostname }} port: 6088 state: stopped when: - inventory_host...转载 2018-08-14 23:30:31 · 7653 阅读 · 1 评论 -
ansible命令执行模块使用
1、命令执行模块-command在远程节点上运行命令。命令模块使用命令名称,接上空格-的分割符作为参数使用,但是不支持管道符和变量等,如果要使用这些,那么可以使用shell模块。 参数 必填 默认 选项 说明 Chdir No ...转载 2018-08-14 23:00:33 · 2238 阅读 · 0 评论 -
RUN ONCE
RUN ONCE通过run_once: true来指定该task只能在某一台机器上执行一次. 可以和delegate_to 结合使用- command: /opt/application/upgrade_db.py run_once: true delegate_to: web01.example.org指定在"web01.example.org"上执行这如果没有delegate_to, ...转载 2018-06-06 01:02:57 · 866 阅读 · 0 评论 -
Ansible使用介绍(三)templates及Roles角色
role内各目录中可用的文件tasks目录:至少应该包含一个名为main.yml的文件,其定义了此角色的任务列表;此文件可以使用include包含其他的位于此目录中的task文件; files目录:存放由copy或script等模块调用的文件; templates目录:templates模块会自动在此目录中寻找Jinja2模板文件; handlers目录:此目录中应当包含一个main;...转载 2018-08-17 00:16:35 · 5374 阅读 · 0 评论 -
ansible 模块自定义开发
def main(): module = AnsibleModule( # not checking because of daisy chain to file module argument_spec=dict( src=dict(type='path'), original_basename=dict...转载 2018-08-27 23:51:05 · 4434 阅读 · 1 评论 -
ansible插件自定义开发
8.1 Ansible插件使用场景1)除Paramiko、本机SSH、Local、Winrm连接方式外,希望Ansible基于新的通信方式与远程主机交互;2)除Ansible内置的with_items、with_fileglob循环体外,希望有新的遍历方式;3)除了Ansible内置的host_vars、group_vars等变量调用方式外,希望有新的变量定义方式;4)除了Ansi...转载 2018-08-27 23:59:50 · 1968 阅读 · 0 评论 -
ansible的delegate_to、connection、和local_action
由于工作需要,经常需要把目标节点获得的信息写入执行节点文件日志。所以经常用到delegate_to,connection,local_action写法难看,基本不用。delegate_to和connection最后达到的目标是一致的,就是把目标机器上的{{ }}大括号标记的变量在被代理连接的节点上调用。 示例---- name: connection hosts: ...转载 2018-11-10 23:43:27 · 795 阅读 · 0 评论 -
ansible的delegate_to、connection、和local_action
由于工作需要,经常需要把目标节点获得的信息写入执行节点文件日志。所以经常用到delegate_to,connection,local_action写法难看,基本不用。delegate_to和connection最后达到的目标是一致的,就是把目标机器上的{{ }}大括号标记的变量在被代理连接的节点上调用。示例---- name: connection hosts: con...转载 2018-09-12 16:36:43 · 5906 阅读 · 0 评论 -
ansible 命令只执行一次
RUN ONCE通过run_once: true来指定该task只能在某一台机器上执行一次. 可以和delegate_to 结合使用- command: /opt/application/upgrade_db.py run_once: true delegate_to: web01.example.org指定在"web01.example.org"上执行这如果没有del...转载 2018-08-24 18:04:04 · 7325 阅读 · 0 评论 -
ansible 变量检测是否定义
如果需要的变量没有定义,那么可以skip或者使用jinja2的defined如下所示: tasks: - shell: echo "I've got '{{ foo }}' and am not afraid to use it!" when: foo is defined - fail: msg="Bailing out. ...原创 2018-08-24 14:14:17 · 4489 阅读 · 0 评论 -
ansible tempfile模块
#!/usr/bin/python# -*- coding: utf-8 -*-# Copyright: (c) 2016, Krzysztof Magosa <krzysztof@magosa.pl># Copyright: (c) 2017, Ansible Project# GNU General Public License v3.0+ (see COPYING o...原创 2018-08-28 10:06:42 · 768 阅读 · 0 评论 -
ansible roles meta
roles中meta目录main.yml定义的playbook,会被首先运行 出处:https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html?highlight=meta参考:https://blog.youkuaiyun.com/liuxiangke0210/article/details/80...原创 2018-08-20 23:14:31 · 1657 阅读 · 0 评论 -
ansible 下lineinfile详细使用
一、简述 这几天在看了ansible官网,收获蛮多。截取一个lineinfile模块作一个总结。如果批量修改配置文件某一行时,在写playbook时lineinfile避免不了的。 根据官网说法:lineinfile - Ensure a particular line is in a file, or replace an existing line using a bac...转载 2018-08-20 22:02:33 · 3463 阅读 · 0 评论 -
ansible set_fact 在playbook中动态添加变量 (register也可以)
set_fact set_fact模块可以自定义facts,这些自定义的facts可以通过template或者变量的方式在playbook中使用。如果你想要获取一个进程使用的内存的百分比,则必须通过set_fact来进行计算之后得出其值,并将其值在playbook中引用。下面是一个配置mysql innodb buffer size的示例:- name: Configure My...转载 2018-08-20 21:36:43 · 14241 阅读 · 1 评论 -
ansible change状态解析
在本博客中,ansible是一个系列文章,我们会尽量以通俗易懂的方式总结ansible的相关知识点。ansible系列博文直达链接:ansible轻松入门系列“ansible系列”中的每篇文章都建立在前文的基础之上,所以,请按照顺序阅读这些文章,否则有可能在阅读中遇到障碍。在前文的基础上,我们已经知道,当我们使用ansible完成实际任务时,需要依靠ansible的各个模块,比如,我们想要去pin...转载 2018-06-05 19:54:50 · 9984 阅读 · 0 评论 -
Ansible 进阶技巧
简介Ansible 是一个系统自动化工具,可以用来做系统配管理,批量对远程主机执行操作指令。我自己使用 Ansible 也有一段时间了,这里总结了一些使用 Ansible 过程中使用的心得与大家分享。Ansible 性能优化在使用 Ansible 的过程中,当管理的服务器数量增加时,不得不面对一个无法避免的问题执行效率慢,这里列出一些解决办法。优化前的准备—收集数据在做性能优化之前首先需要做的是收...转载 2018-06-05 18:23:20 · 2939 阅读 · 0 评论 -
ansible执行status
[root@centos5 pltestmodule]# ansible-playbook -i hosts testdate.yaml PLAY [local] *******************************************************************************************************TASK [echo ...转载 2018-06-05 18:08:00 · 803 阅读 · 0 评论 -
ansible 把一个组作为另一个组的子成员 host文件
把一个组作为另一个组的子成员可以把一个组作为另一个组的子成员,以及分配变量给整个组使用. 这些变量可以给 /usr/bin/ansible-playbook 使用,但不能给 /usr/bin/ansible 使用:[atlanta]host1host2[raleigh]host2host3[southeast:children]atlantaraleigh[southeas...转载 2018-04-30 12:13:03 · 5250 阅读 · 0 评论 -
DAS、SAN、NAS三种存储方式的概念及应用
DAS(Direct-attached Storage) 直连存储直连式存储与服务器主机之间的连接通常采用SCSI连接,SCSI通道是IO瓶颈;服务器主机SCSI ID资源有限,能够建立的SCSI通道连接有限。无论直连式存储还是服务器主机的扩展,从一台服务器扩展为多台服务器组成的群集(Cluster),或存储阵列容量的扩展,都会造成业务系统的停机,NAS(Network Attached Sto...转载 2018-04-17 11:08:21 · 3332 阅读 · 0 评论 -
linux ssh互信配置
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.3.20注意:ssh-copy-id不是这样使用,如下ssh-copy-id root@192.168.3.21[root@centos5 ~]# ssh-copy-id root@195.168.43.135/usr/bin/ssh-copy-id: INFO: Source of key(s) to b...转载 2018-04-15 11:13:14 · 1316 阅读 · 0 评论 -
OpenStack Kolla源码分析–Ansible
Kolla介绍Kolla项目利用Docker、Docker-Compose、Ansible来完成部署OpenStack,目前Kolla已经能够完成一个all-in-one的开发环境的部署。从Kolla项目spec中的描述来看,主要是利用Docker容器的隔离性来达到OpenStack的原数据升级、回退再升级。整个升级、回退的过程更容易控制影响范围,降低整个OpenStack的运维复杂度。Kolla...转载 2018-04-15 00:34:16 · 1109 阅读 · 0 评论 -
添加自定义的监控项目(四)
从安装的第一天,就必然有人会有疑问,默认的监控模板不好用,或者说根本没有自己想要的,这可怎么办呢?没关系,zabbix和nagios一样,可以自定义监控项目,当然包括报警规则和视图了,也不是很复杂.添加自定义的监控项目:操作之前要知道原理:原理是server端调用agent端配置的键值参数调用脚本,然后脚本参数传输给server端,server端写进数据库,然后获取到新的数值再进行处理并在前端显示...转载 2018-03-06 12:13:10 · 352 阅读 · 0 评论 -
ansible api模块插件介绍
原创 2018-03-11 23:23:28 · 680 阅读 · 0 评论 -
ansible 执行动作(ad-hoc和playbook)两种方式
原创 2018-03-11 23:16:36 · 1196 阅读 · 0 评论 -
ansible inventory(分组查找匹配)
原创 2018-03-11 23:10:52 · 1542 阅读 · 0 评论 -
ansible基础
还有很多配置原创 2018-03-11 23:00:24 · 305 阅读 · 0 评论 -
Ansibles
1、简介ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:(1)、连接插件connection...转载 2018-01-09 01:29:24 · 876 阅读 · 0 评论 -
kolla的一点心得
kolla综合kolla简介:kolla是openstack下面用于自动化部署的一个项目,它基于docker和ansible来实现,docker主要负责镜像制作,容器管理。而ansible主要负责环境的部署和管理。准备:安装kolla,ansible,docker,Jinja2及相关依赖kolla镜像制作流程规划:1.基于什么操作系统制作? 2.采用源码安装,还是yum/apt包安装? 3.选择o...转载 2018-04-13 19:51:22 · 4494 阅读 · 0 评论 -
ansible facts
使用Facts获取的信息还有其它地方可以获取变量,这些变量是自动发现的,而不是用户自己设置的.Facts通过访问远程系统获取相应的信息. 一个例子就是远程主机的IP地址或者操作系统是什么. 使用以下命令可以查看哪些信息是可用的:ansible hostname -m setup这会返回巨量的变量数据,比如对于Ubutu 12.04系统,Ansible 1.4获取的信息显示如下:"ansible_...转载 2018-05-19 18:49:56 · 1408 阅读 · 0 评论 -
Ansible应用总结【第九篇】: Ansible之API讲解
Ansible应用总结【第九篇】: Ansible之API讲解 Ansible API 的使用非常强大,也非常简单,只不过把模块需要使用的参数写到了脚本中。当业务比较大比较复杂的时候, 单纯的使用Ansible有时候不会很好的完成相关的运维工作, 这个时候就需要开发针对自己业务的一些模块或者ansible插件来完成这些工作。 Ansible还提供了Python接口,可以使用Python开发更为自...转载 2018-06-05 18:05:16 · 3128 阅读 · 0 评论 -
Handlers: 在发生改变时执行的操作
Handlers: 在发生改变时执行的操作上面我们曾提到过,module 具有”幂等”性,所以当远端系统被人改动时,可以重放 playbooks 达到恢复的目的. playbooks 本身可以识别这种改动,并且有一个基本的 event system(事件系统),可以响应这种改动.(当发生改动时)’notify’ actions 会在 playbook 的每一个 task 结束时被触发,而且即使有多...转载 2018-06-05 18:04:28 · 277 阅读 · 0 评论 -
ansible debug模块学习笔记
平时我们在使用ansible编写playbook时,经常会遇到错误,很多时候有不知道问题在哪里 。这个时候可以使用-vvv参数打印出来详细信息,不过很多时候-vvv参数里很多东西并不是我们想要的,这时候就可以使用官方提供的debug模块来查找问题出现在哪里。playbook示例# verbosity(added in 2.1),如果使用的的该本低于该版本,使用时会报错- name: d...转载 2018-06-05 10:44:33 · 13254 阅读 · 0 评论