Ansible
文章平均质量分 70
结合两家公司实际工作经验,耗费半年时间,精心整理
凯尔kyle
这个作者很懒,什么都没留下…
展开
-
10.0 Ansible Docker
概览Ansible内置一些专用的Docker模块,帮助我们更好的管理容器相关环境环境信息Ansible 2.9.16CentOS Linux release 7.9.2009 (Core)Docker version 18.09.9Python 2.7.5Docker python module docker-4.4.1依赖安装#1 安装dockerhttps://blog.csdn.net/xys2015/article/details/109370082#2 开启EPEL re原创 2021-02-20 09:57:29 · 1242 阅读 · 1 评论 -
9.1 Ansible 图形界面-AWX
概览Ansible AWX是Ansible Tower的开源版本,其关系类似RedHat和CentOS的关系安装0 目标在单台2C4G,CentOS7机器上安装Ansible AWX 17.0.0安装完毕之后,打开本地监听的80端口访问,我这里即http://192.168.31.101:80登录使用的是默认账号密码,即 admin / password1 安装依赖#1.1 安装ansibleyum install ansible#1.2 安装docker参考 https://b原创 2021-02-20 09:50:20 · 2937 阅读 · 2 评论 -
9.0 Ansible 图形界面-Tower
概览如果一个团队有多个人共同维护一份Ansible Playbook集合(一组角色),如果想要追踪改动,比如谁在什么时间改了什么,一般使用git做代码管理即可,如果想更精细级别的追踪,谁在什么时间执行了什么playbook,此时可以考虑设计一套系统来完成这件事(当然也可以用规章制度来保证)Ansible Tower即是一套可以实现上述功能的图形界面系统,概括来说,其功能大致如下实时观察playbook的执行动态与历史记录基于RBAC用户权限控制支持一套完整的RESTful API备份和回滚支原创 2021-02-20 09:45:05 · 1661 阅读 · 0 评论 -
8.0 Ansible 配置文件
概览控制Ansible行为的方式有很多,基本分为如下4种:配置文件命令行参数playbook关键词变量比如主机清单位置,默认是/etc/ansible/hosts,也可以通过命令行参数- i更改,也可以通过修改配置文件更换默认主机清单位置;playbook里可以控制执行用户,在主机变量里也可以控制上面4种配置方法,优先级从低到高,简单来说就是后面定义的内容会覆盖前面的,配置文件的优先级是最低的,本篇文章重点说一说Ansible常用的一些配置项配置文件路径Ansible按照下面的顺序寻找原创 2021-02-20 09:34:25 · 372 阅读 · 0 评论 -
7.1 Ansible 动态获取主机清单
场景在实际工作环境中,较大的企业通常有内部的CMDB管理系统,每个部门基本也都有开发自己的运管系统之类,比如最基础的本部门有哪些机器,它们都是什么配置,基本都是通过运管系统管理。这套内部系统可能已经使用很长时间,内部也形成了一定的规范,比如初始化机器会有脚本自动注册机器基础信息到系统中,也就是说相应的运管系统才保存在一手完整的元数据信息,当然这一类的运管系统通常都有API对外暴露供用户使用,比如调curl某个地址,返回全部机器IP等换句话说,我们使用Ansible管理的机器IP地址,可能来自于某个接口返原创 2021-02-20 09:32:24 · 1674 阅读 · 0 评论 -
7.0 Ansible 主机清单
基础主机清单,inventory,是存放被管理机器的IP或域名的地方,清单里的IP地址可以分组,如前端机器一组,后端机器一组,默认这个配置文件在/etc/ansible/hosts,如下是一个实例# cat /etc/ansible/hosts[webservers]foo.example.combar.example.com192.168.31.10[dbservers]one.example.comtwo.example.comthree.example.com组名称遵循一般原创 2021-02-20 09:30:29 · 202 阅读 · 0 评论 -
6.0 Ansible Galaxy角色仓库
概况现在Docker技术应用已经非常普遍了,相比大家对Docker的镜像仓库都不陌生,就是一个官方或者说第三方上传镜像的地方,我们可以直接下载使用类似的,对于Ansible来说角色是最方便我们复用的基本单位了,Ansible Galaxy(galaxy.ansible.com),就是角色仓库,存放有大量社区已经写好的优质角色,我们直接下载下来即可使用或者参考二进制文件一般不放到角色中管理,因此我们下载的角色基本都是文本文件galaxy有银河、星系的意思,没啥特殊含义,就是起了这么个名字gala原创 2021-02-19 17:24:15 · 438 阅读 · 0 评论 -
5.0 Ansible 组织Playbook角色
概览掌握Ansible一些基础模块以及一些高级用法,再配合简单的Ansible复用知识,我们已经能管理一些基础的服务。不过如果我们决定生产环境服务部署全套都通过Ansible来管理,那么简单靠上面这些知识去组织Ansible Playbook目录结构是比较乱的,搞不好类似俄罗斯套娃那样,一层又一层,没什么规律,难以维护。组织管理大批量playbook,这就需要用到Ansible Roles一个简单易上手的实例Ansible Roles本身并没有引入太多新的知识,相当于一套合理的组织我们的playboo原创 2021-02-19 17:21:38 · 151 阅读 · 0 评论 -
4.0 Ansible Playbook复用
import_playbookimport_playbook 顾名思义,直接导入整个playbook,用法很简单,直接把已经有的playbook包含进去即可,形成一个总的playbook,执行总的playbook即会按照顺序执行单个playbookcat import_playbook.yml- import_playbook: 1_base.yaml- import_playbook: 2_backup_rsync.yaml- import_playbook: 3_nfs_share.yaml原创 2021-02-19 17:19:50 · 137 阅读 · 0 评论 -
3.2 Ansible Playbooks 高级二
when 满足某条件执行某些场景下我们部署一个软件,或者执行一条命令是有条件的,比如当检测到一条命令的输出中包含 OK 字符串,才进一步执行后续操作- shell: my_command_here register: my_command_result- command: do-something-to-my-app when: "'ready' in myapp_result.stdout"亦或是检测到定义了某个变量才执行某些后续操作#此时 is_db_server 需要是bool原创 2021-02-19 09:42:53 · 262 阅读 · 0 评论 -
3.1 Ansible Playbook高级一
Handlers 触发器这个东西类似一个触发器,比如这么一个场景,我们把nginx conf配置文件拷贝到目标机器,那么当这个配置文件更新后,需要重启nginx,类似这种需求我们就拿 Ansible handlers 来做 - name: Copy configuration files copy: src: xtest1.conf dest: /etc/nginx/conf.d/xtest1.conf notify: -原创 2021-02-19 09:39:40 · 137 阅读 · 0 评论 -
3.0 Ansible Playbooks基础
概览Ansible的核心是Playbooks(可翻译为剧本),剧本是用YAML语法书写的,来描述对被管理机器需要进行的一系列操作。剧本相当于做菜手册,上面按顺序记录了,如何把被管理机器一步步打造成指定的样子。YAML语法相当简单,即使读者之前从未听过YAML也毫无关系,YAML书写起来比JSON格式更简单接下来我们以运维朋友几乎都非常熟悉的,安装nginx,来演示playbooks的基础用法示例 - 安装nginx我们分别使用3种方法:纯手动、shell脚本、playbooks,来部署ngin原创 2021-02-18 14:17:36 · 158 阅读 · 0 评论 -
2.0 Ansible Ad-Hoc命令
概览什么是 ad-hoc commands 呢 ? 下面这样就是ansible all -a "free -h"也就是在命令行直接执行Ansible命令,不是我装逼,这个没找到很好的翻译,官方文档和一些国外的书籍都这么称呼在命令行直接运行Ansible命令,基本上只存在于测试环节,甚至有时候测试都不用,毕竟生产环境都是写playbook管理,否则有点什么操作大家都冲到机器上执行个Ansible远程命令,也没啥记录,时间久了其不乱成一坨,而写成playbook尤其是在配合git进行管理,则可以清楚的原创 2021-02-16 09:26:52 · 217 阅读 · 0 评论 -
1.3 Ansible 整体架构图
特点Ansible 用来对一组机器进行批量操作,如应用部署、配置管理等Ansible 完全基于Python开发,Linux系统下基于OpenSSH通信Ansible 是开源软件,目前由Red Hat维护 (商业版提供了可视化界面)Ansible 不需要数据库、不需要运行后台进程,不需要客户端(客户端无需任何配置,由管理端配置好后即可使用),对目标主机几乎完全无侵入,简单高效,学习成本相对低架构图组成部分Ansible主要由6部分组成ANSIBLE PLAYBOOKS:任务剧本(任务集原创 2021-02-16 09:18:31 · 626 阅读 · 0 评论 -
1.2 Ansible 基础概念
概览每个专业技术都有一些专业术语,有些概念是显而易见的,有些则需要单独解释下,这些基础概念也即是Ansible的重要组成部分控制节点 Control node任何安装有Ansible的机器都可以称为控制节点,也可以叫管理节点,控制节点可以有多个被控节点 Managed nodes被控制节点管理的机器,叫做被控节点,或者说被管理节点,也即是书写在主机清单里的文件Inventory 主机清单主机清单,即一份机器列表,上面列出了全部被管理的机器,被管理的机器(被控节点)必须写到主机清单里,才能进一步原创 2021-02-16 09:17:01 · 181 阅读 · 0 评论 -
1.1 Ansible 快速上手
这篇文章我们会快速过一下Ansible的主要功能,面向新手可能无法理解部分细节,没关系后面都会展开讲准备环境由于我们用Ansible是批量管理多台机器的,因此我们准备多台机器以供测试,这里均使用CentOS7系统[root@192-168-31-106 ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localh原创 2021-02-10 17:20:52 · 239 阅读 · 0 评论 -
1.0 Ansible 安装
准备环境干净的CentOS7,能够连接公网,开启EPEL源开启EPEL源可参考 https://blog.csdn.net/xys2015/article/details/109378741一开始硬件环境无过多要求,1核1G足够python版本要求控制端,也就是安装有Ansible的机器,要求python2.7+或python3.5+被控端,也就是我们用Ansible管理的机器,要求python2.6+或python3.5+开始安装yum list ansible --showdup原创 2021-02-10 17:18:38 · 105 阅读 · 0 评论