ansible

DevOps

生来就可爱ヽ(ⅴ<●) 提交于 2020-05-01 02:40:24
1 - 配置管理工具 配置管理工具(SCM,Software Configuration Management)可以将代码、软件方式实现的基础设施配置信息保存,也可以根据需求变化反复进行变更。 相关工具包括Ansible、Chef、Puppet、SaltStack等,版本管理工具有Git、Subversion等。 配置管理工具的特征 声明式:通过配置信息对当前配置对象的具体状态进行明确描述,并管理这个状态;形式简单、易于理解; 抽象化:配置信息能涵盖细微的环境差异,不需要根据配置对象所在环境的细微差别而分开编写配置信息,消除代码执行时的特殊性; 收敛性:不管对象的状态如何,最终都会变为指定的期望状态 幂等性:无论执行多少次都能得到相同的结果 省时省力:配置信息轻量,易于传输,可以提高审查速度,能够快速回滚到上一个版本;开源;可通过自动化进行快速设置; 2 - Ansible简介 Ansible是基于python语言开发的一种开源的自动化运维工具和平台,集合了众多运维工具的优点,实现了批量配置管理、批量应用部署和运行命令执行特定任务等功能。 Ansible基于SSH来和远程主机通讯,不需要在远程主机上安装client/agents。 配置信息语法规则简单,命令简洁,容易入门。 Ansible只是提供一种框架,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块

Ansible专栏:一步到位玩透Ansible

耗尽温柔 提交于 2020-04-30 15:01:22
一步到位玩透Ansible 我写了一个关于Ansible的专栏,从0到1玩透性质的,非常系统性,大概39W字,转成pdf有430多页,只需39元。 地址: https://blog.51cto.com/cloumn/detail/83 专栏目录 : 1.学习不迷茫:Ansible要如何学至精通 2.初入Ansible世界:用法概览和初体验 3.制定演员表:inventory 4.嘿,瞧瞧Ansible的灵魂:playbook 5.Ansible力量初显:批量初始化服务器 6.更大的舞台(1):组织多个文件以及Role 7.更大的舞台(2):利用Role部署LNMP案例 8.回归Ansible并进阶:变量、条件、循环、异常处理及其它 9.如虎添翼的力量:解锁强大的Jinja2模板 10.服务0 downtime的追求:Haproxy+Nginx集群服务的滚动发布和节点伸缩 11.Ansible你快点:Ansible执行过程分析、异步、效率优化 12.让Ansible更安全:使用Vault进行加密 13.蚂蚁多了也咬不死Ansible:Ansible Tower 14.Ansible管理docker和openstack 15.意外之喜:Ansible管理Windows主机 16.成就感源于创造:自己动手写Ansible模块 详细目录: 1.学习不迷茫:Ansible要如何学至精通 1

Django项目中接受前端页面点击事件异步执行之celery+redis

怎甘沉沦 提交于 2020-04-28 04:40:40
问题场景: 当在Python Django项目中,创建多个APP应用,并且Django实现后端业务逻辑处理过程,属于(后端代码),既然后有后端代码,那基本会与前端代码(前端页面)进行人机交互操作。在此情况下,基本操作前端输入对应的参数和点击对应的按钮事件,将数据实时传输给后端代码进行业务处理,然后并在最短时间内反馈到前端,实现一次完整的输入输出过程(该过程实时并高效快速),但往往该情况属于实时处理,既然有实时,也存在异步操作,此处就以Python调用ansible执行自动化部署操作为例,在该例子中,前端提交部署请求,Python调用ansible进行部署处理,在处理过程中,一般简单操作会快速执行完成并返回结果数据,但当部署复杂的ansible操作时其中等待的时间会更长,给前端会处于等待状态,会因此带来拥塞情况和用户体验较差。针对此情况,Django项目有他处理的成熟方案。 解决方案: 根据以上提出的问题,进行分析,既要让用户不处于一直等待状态,又要让该任务后端异步执行,同时用户需要在任务执行完成后被动知道最终结果。综上所述得出方案:Django项目中采用celery异步任务执行+redis任务队列数据存储+执行任务结束回调过程。 具体实现:mysql存储执行结果日志,redis缓存,Django1.11.7,Python3.6.3(asstes项目,asstes_cd APP应用)

自动化运维(2)之一键式单实例安装MySQL

∥☆過路亽.° 提交于 2020-04-27 20:46:27
ZMySQLAutoTools文档 目标:自动化构建部署MySQL数据库,一键式单实例mysql安装,备份,监控,主从集群部署等。以及jdk,tomcat,nginx等基础中间件的自动化部署安装及运维。 此文档:完成一键式单实例mysql安装功能,可以完成批量标准化部署MySQL单实例。用于测试,开发以及生产环境。 目录 安装 ZMySQLAutoTools 环境准备 解压ZMySQLAutoTools python3.x安装 ansible安装 配置ansible 自动化单实例MySQL部署 yaml文件配置修改 一键单实例MySQL部署 环境准备 本实验为:4台虚拟机,操作系统为:Centos 6.8(6以上均可) 主机名 ip地址 备注 host_50 10.1.11.50 主控机 host_51 10.1.11.51 被控客户端 host_52 10.1.11.52 被控客户端 host_53 10.1.11.53 被控客户端 解压ZMySQLAutoTools 1):获得ZMySQLAutoTools安装包 cd /tmp/ wget https://github.com/zhangshengdong/ZMySQLAutoTools/archive/master.zip 2):解压ZMySQLAutoTools安装包 unzip master mv

Ansible指令和常用模块使用

痴心易碎 提交于 2020-04-27 19:25:22
这里文章记录一下ansible的指令选项和常用的模块使用 ansible指令选项 -m:要执行的模块,默认为command -a:模块的参数 -u:ssh连接的用户名,默认用root,ansible.cfg中可以配置 -k:提示输入ssh登录密码,当使用密码验证的时候用 -s:sudo运行 -U:sudo到哪个用户,默认为root -K:提示输入sudo密码,当不是NOPASSWD模式时使用 -C:只是测试一下会改变什么内容,不会真正去执行 -c:连接类型(default=smart) -f:fork多少进程并发处理,默认为5个 -i:指定hosts文件路径,默认default=/etc/ansible/hosts -I:指定pattern,对已匹配的主机中再过滤一次 --list-host:只打印有哪些主机会执行这个命令,不会实际执行 -M:要执行的模块路径,默认为/usr/share/ansible -o:压缩输出,摘要输出 --private-key:私钥路径 -T:ssh连接超时时间,默认是10秒 -t:日志输出到该目录,日志文件名以主机命名 -v:显示详细日志 ansible指令使用方法: ansible可以直接在命令中指定主机组或者主机来着执行命令:例如 [root@Ansible ~]# ansible nginx -m ping 192.168.214.129 |

中小企业如何做运维自动化?

自古美人都是妖i 提交于 2020-04-27 17:22:56
不管大型还是中小型互联网公司,运维面对最多的工作就是发布部署,近些年各种运维自动化工具也越来越多,运维自动 化每个人都有一套自己的理解,那么中小公司一般都怎么做运维自动化呢? 我们先看一下中小企业面临的问题 : 人员有限,小一点的公司专业运维可能没有,开发自己上线,也有可能 1-2 个运维人员,基本不会投入专门的运维开发 来开发运维自动化平台。 服务器少,可能不超过 50 台服务器。 版本更新迭代比较快,需要快速方便的发布回滚。 中小企业运维自动化常见做法: Gitlab+Jenkins ,创建 Jenkins 任务,使用 Jenkins 登录服务器执行脚本实现发布,配合服务器多个脚本实现对服务器管 理。 Gitlab+Jenkins+Ansible ,使用 Jenkins 调用 Ansible 登录服务器执行脚本实现代码的发布,平时服务器管理使用 Anaibl e 进行服务器管理。 K8S 平台,使用 K8s 发布平台,打包应用 Docker 镜像,通过 K8s 发布到线上。 使用开源的运维自动化平台发布管理, Github 上有很多优秀的开源项目,可以使用。虽然可以通过上面的几种方法把发 布和经常操作的都实现自动化,但是避免不了登录服务器操作命令、配置任务计划,修改应用配置文件,配置服务器监控等。 那么有没有开源平台可以很方便的实现上面说到的这些功能呢

DevOps工程师技能

此生再无相见时 提交于 2020-04-27 10:18:48
技术背景 DevOps工程师必须持有计算机科学、工程或其他相关领域的学位。2年以上工作经验。这包括开发人员、系统管理员或devops驱动的团队成员的工作。这是一个重要的需求,同时也是对所有IT操作的理解。 自动化工具的经验 了解用于测试和部署的开源解决方案是DevOps工程师必须具备的知识。如果您使用的是云服务器,请确保您的候选人具有使用GitHub、Chef、Puppet、Jenkins、Ansible、Nagios和Docker等工具的经验。此职位的候选人还必须具有使用公共云(如Amazon AWS、Microsoft Azure和谷歌云)的经验。 编程技能。 工程师不仅要知道现成的工具,还要有编程经验,包括脚本和编码。脚本编制技能通常需要Bash或PowerShell脚本的知识,而编码技能可能包括Java、c#、c++、Python、PHP、Ruby等,或者至少是其中一些语言。 数据库系统知识。 在部署阶段,工程师处理数据处理,这需要有SQL或NoSQL数据库模型的经验。 沟通和人际交往能力 虽然一个好的候选人必须精通技术方面,但是DevOps专家必须有很强的沟通才能。他/她必须确保团队有效运作,接收和分享反馈以支持持续交付。结果——一个产品——取决于他/她与所有团队成员有效沟通的能力。 参考 https://www.altexsoft.com/blog

解决报错Failed to start LSB: Bring up/down networking:MAC地址导致

萝らか妹 提交于 2020-04-27 06:31:27
1.场景描述,我在电脑里装好的虚拟机,今天突然就网络无法打开,并出现如下报错: [root@ansible-control ~]# systemctl start network Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details. [root@ansible-control ~]# systemctl status network ● network.service - LSB: Bring up/down networking Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled) Active: failed (Result: exit-code) since 日 2019-09-29 22:44:34 CST; 1s ago Docs: man:systemd-sysv-generator(8) Process: 5042 ExecStart=/etc/rc.d/init.d/network start (code=exited,

Ansible 手册系列 一(介绍)

两盒软妹~` 提交于 2020-04-26 18:03:22
一 介绍 Ansible 是一个配置管理和应用部署工具,功能类似于目前业界的配置管理工具 Chef,Puppet,Saltstack。Ansible 是通过 Python 语言开发。Ansible 平台由 Michael DeHaan 创建,他同时也是知名软件 Cobbler 与 Func 的作者。Ansible 的第一个版本发布于 2012 年 2 月,相比较其它同类产品来说,Ansible 还是非常年轻的,但这并不影响他的蓬勃发展与大家对他的热爱。 Ansible 默认通过 SSH 协议管理机器,所以 Ansible 不需要安装客户端程序在服务器上。您只需要将 Ansible 安装在一台服务器,在 Ansible 安装完后,您就可以去管理控制其它服务器。不需要为它配置数据库,Ansible 不会以 daemons 方式来启动或保持运行状态。 Ansible 的目标有如下: • 自动化部署应用 • 自动化管理配置 • 自动化的持续交付 • 自动化的(AWS)云服务管理。 根据 Ansible 官方提供的信息,当前使用 Ansible 的用户有:evernote、rackspace、NASA、Atlassian、twitter 等。 Ansible是怎么工作的 从上图可以看出,运行ansible的先决条件是,安装ansible到管理节点,定义主机清单,并有一些playbooks定义

ansible--一键部署redis5.0.5集群及全套脚本

。_饼干妹妹 提交于 2020-04-26 16:51:56
前两天带着大家写了两个脚本,难度是递增的,可以到公众号脚本命令板块的an脚本中找到相关例子。其中有些配置是都是我们实际生产生活能用到的。今天我们把难度再上一些!源码安装redis5.0.5最新版集群。 声明:因为脚本需要反复测试, prot 这个变量名写错了到后来才发现,但是全局调用的最多的就还是它。所以不改了。就这样吧! 脚本功能: 利用ansible构建三台物理机组成的redis集群,每台物理机上面都有一主一备两个实例,故障自动切换并保证redis相关实例开机自启动。 先说怎么用: vim /etc/ansible/hosts 波哥配置的是这样: 咱们项目就是订好了这个端口号,不要变了。因为有个地方我把端口号写死了。 再配置: vim work_yml/redis.yml 这里面按我的例子写就行了。然后执行 ansible-playbook redis.yml 集群会自动开机启动 手动关机机命令: ansible redis -m shell -a "sh /opt/redis/redis_cluster/script/shutdown.sh" 手动开机命令: ansible redis -m shell -a "sh /opt/redis/redis_cluster/script/start.sh" 登录集群 redis-cli -h 192.168.1.117 -p