背景:Teamleader提到一款好用的自动化配置管理工具,于是前去学习实践,有了下面分享。

纲要

一、Ansible简介

二、Ansible准备

2.1 Ansible安装

2.2 设置SSH公钥验证

三、Ansible配置

3.1 Ansible主机清单文件

3.2 Ansible配置文件

四、Ansible基础

4.1 Ad-Hoc Command

4.2Playbook

4.3ansible-playbook常用命令

4.4学习链接

五、Ansible实践:基于Ansible一键批量部署BSTK容器

一、Ansible简介

Ansible是一款的自动化运维工具,基于Python开发,可以实现批量系统配置、批量程序部署、批量运行命令等。被管理的远程服务器不需安装代理,通过Ansible我们可以批量管理服务器。

二、Ansible准备

2.1
Ansible
安装

下面仅介绍Ubuntu下Ansible的安装

安装步骤:

1、安装software-properties-common包

sudo
apt-get install software-properties-common

2、添加Ansible源

sudo
apt-add-repository ppa:ansible/ansible

3、刷新系统的包索引

sudo
apt-get update

4、安装Ansible

sudo
apt-get install ansible

2.2
设置SSH公钥验证

设置步骤:

1、创建本地公钥

ssh-keygen
-t rsa

2、添加信任到客户端

ssh-copy-id
-i id_rsa.pub bn@172.16.23.XXX

三、Ansible配置

3.1
Ansible
主机清单文件

Ansible
hosts文件默认所在路径/etc/ansible/hosts

p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }

方括号[]中是组名,便于对不同服务器进行分组,组内对应各台服务器的信息。

3.2 Ansible配置文件

Ansible配置文件默认所在路径/etc/ansible/ansible.cfg

主要设置Ansible初始化信息,如日志存放路径、模块、插件等配置信息。日志路径默认在/var/log/ansible.log

p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }

四、 Ansible基础

利用Ansible对远程服务器进行操作主要有两种方法,一是Ad-Hoc Command,Ad-Hoc Command常用于去比较快速完成一些任务,而不需要将这些执行的命令保存下来,属于临时性命令; 二是Playbooks,Playbooks可用于批量部署任务编排,编写完xxx.yml后,只需一个ansible-playbook命令,即可完成整个部署任务。

4.1
Ad-Hoc Command

Ad-Hoc
命令基本语法:

ansible
操作目标 -m
模块名称 -a
模块参数

eg.
将本地目录/home/bn下的test.yml
文件拷贝到远程目录/home/bn

ansible
all -m copy -a “src=/home/bn/test.yml dest=/home/bn”

操作目标可在/etc/ansible/hosts中定义

常用的模块有copy,file,
command, shell, service, setup等等,更多模块介绍,可用ansible-doc
-l查看,具体模块用法,可见官网。

4.2
Playbook

Playbook的格式是YML,由一个或多个plays(常用于对多个不同组操作)组成,每个plays中可以定义roles(任务task),每个task中可由Ad-Hoc
的模块命令+
参数组成

eg.
如下是一个简单的Playbook

p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }
p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }

4.3 ansible-playbook常用命令

1、检查yml文件的语法是否正确

ansible-playbook test.yml --syntax-check

2、检查yml文件中的tasks任务

ansible-playbook test.yml --list-task

3、检查yml文件中的生效主机

ansible-playbook test.yml --list-hosts

4、运行playbook

ansible-playbook test.yml

5、运行playbook里面特定的某个task,从某个task开始运行

ansible-playbook test .yml --start-at-task='XXX'

6、so on 。。。

4.4
学习链接

1Ansible官网

https://www.ansible.com/

2Ansible中文权威指南

http://www.ansible.com.cn/

3Ansible:一个配置管理和IT自动化工具

https://linux.cn/article-4215-1.html

五、Ansible实践:基于Ansible一键批量部署BSTK容器

目录结构如下:

p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }

其中test.yml是主playbook,不同分组对应不同plays,如docker.yml,gg.yml。具体实现在/home/docker/Docker/roles/special/tasks/main.yml

p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }

p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }

Ansible学习分享(基本)的更多相关文章

  1. ansible 学习与实践

    title: ansible 学习与实践 date: 2016-05-06 16:17:28 tags: --- ansible 学习与实践 一 介绍 ansible是新出现的运维工具是基于Pytho ...

  2. ElasticSearch 5学习(7)——分布式集群学习分享2

    前面主要学习了ElasticSearch分布式集群的存储过程中集群.节点和分片的知识(ElasticSearch 5学习(6)--分布式集群学习分享1),下面主要分享应对故障的一些实践. 应对故障 前 ...

  3. ElasticSearch 5学习(6)——分布式集群学习分享1

    在使用中我们把文档存入ElasticSearch,但是如果能够了解ElasticSearch内部是如何存储的,将会对我们学习ElasticSearch有很清晰的认识.本文中的所使用的ElasticSe ...

  4. ansible学习笔记一

    ansible学习笔记一 参考博客: ansible学习 - 51CTO博客 一.安装 1 .下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mir ...

  5. Ansible学习实战手记-你想要知道的可能都在这里了

    最近接触了ansible工具,查找了一些资料,也做了一些总结.希望能给刚接触的新手带来一些帮助. 此总结有实际例子,大部分也是从实践中用到才逐一总结的. 当然可能肯定一定会存在一些错误和纰漏,还望大家 ...

  6. MySQL学习分享--Thread pool实现

    基于<MySQL学习分享--Thread pool>对Thread pool架构设计的详细了解,本文主要对Thread pool的实现进行分析,并根据Mariadb和Percona提供的开 ...

  7. JavaScript Shell学习分享

    目录 JavaScript Shell学习分享 简介 安装 使用原因 小结 JavaScript Shell学习分享 简介 JavaScript Shell是由Mozilla提供的综合JavaScri ...

  8. python 学习分享-paramiko模块

    paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Solaris, BS ...

  9. 有关JSOUP学习分享(一)

    其实现在用JSOUP爬虫的也不多了,但是由于最近换公司,做数据爬虫需要用到,就看了下,感觉还是挺好用的,原理什么的感觉和weblogic也差不到哪里去,废话少说,这里就简单的分享下最近接触的干货. J ...

随机推荐

  1. 大一那会,我用QQ远程帮同学考过计算机二级

    考证 大一那会儿流行考证,什么普通话.教师资格证.计算机.商务英语各种证五花八门的. 我们非计算机专业(我是通信工程)的基本上都会去考一个叫计算机二级的证书,说是找工作有用,大一新生,哪懂这些,一窝蜂 ...

  2. 7.If语句

    if单选择结构 语法: if(布尔表达式){ //如果布尔表达式为true将执行的语句 } 例: import java.util.Scanner; public class IfDemo { pub ...

  3. Spring Security极简入门三部曲(中篇)

    目录 Spring Security极简入门三部曲(中篇) 验证流程 Authentication接口 过滤器链 AuthenticationProvider接口: demo时刻 代码讲解 小结 Sp ...

  4. hdu1466 递推

    题意:       给你n条直线,不会存在三线共点,输出所有的可能交点数.. 思路:       这个是个地推的题目,假设当前的线段i,他里面有r条是随意的,有(i - r)条是平行的,那么当前的交点 ...

  5. UVA11997求前k个和,多路归并问题

    题意:      给你一个二维矩阵,n*n的,每次从每一行中拿出来一个,然后加起来组成一个和,一共可以得到n^n个和,要求求出这n^n个和中最小的那n个和. 思路:      多路归并问题,先说下多路 ...

  6. Django中图形验证码(django-simple-captcha)

    django-simple-captcha 在网站开发的登录页面中,经常会需要使用到图形验证码来验证.在Django中,django-simple-captcha库包提供了图形验证码的使用. 下面我们 ...

  7. Weblogic SSRF漏洞(CVE-2014-4210)

    Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis.fastcgi等脆弱组件. 关于SSRF漏洞我们就不讲了,传送门--> SSRF(服务端请求 ...

  8. PowerShell-5.网络请求

    写了一个函数,用于文件下载并且执行: function DownLoadAndRun($vUrl ,$vLocalPath ,$vStart){ Import-Module BitsTransfer ...

  9. Windows核心编程 第六章 线程基础知识 (下)

    6.6 线程的一些性质 到现在为止,讲述了如何实现线程函数和如何让系统创建线程以便执行该函数.本节将要介绍系统如何使这些操作获得成功. 图6 - 1显示了系统在创建线程和对线程进行初始化时必须做些什么 ...

  10. <JVM下篇:性能监控与调优篇>05-分析GC日志

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...