ansible

自动化运维工具--ansible

你。 提交于 2020-01-10 13:13:43
作用 :ansible是一款强大的配置管理工具,可以对成百上千台服务器进行管理,ansible可以理解为一个管理员,基于SSH协议对多台服务器进行指令下 发实现多台服务器的批量操作,一次下发一条命令(ansible ad-hoc模式)的方式来控制服务器,也可以将多条命令写在纸上(ansible playbook模式)让服 务器按照你写好指令工作,也可以通过管理配置实现多台服务器同一时间做不通的事情。上述这些操作都可以基于ansible来实现,前提是ansible可以通 过SSH协议远程服务器 安装: Centos或者redhat可以通过yum安装 yum -y install ansible 配置:正常情况下默认配置即可满足 规划: 配置文件详解 :/etc/ansible/ansible.cfg inventory=/etc/ansible/hosts  表示主机清单inventory文件的位置 forks=5   并发连接数默认为5 sudo_user=root  默认执行命令的用户 remote_port=22 指定连接被管理节点的管理端口,默认是22端口,建议修改成其它的端口,能够更安全 host_key_checking = False  设置是否检查SSH主机的秘钥,值为True/False。关闭后第一次连接不会提示配置实例 timeout=60 

TiExciting —— 让 TiDB 部署轻松简单

半世苍凉 提交于 2020-01-10 11:48:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 作者:王军 运维难,难于上青天。 作为 PingCAP 员工,我们不仅平时自己用着 TiDB,也会自发的想让周围人也用上 TiDB。但在这个过程中,我们发现有以下问题: 上船难:官方推荐的部署方法 TiDB Ansible 限制较多,有一定的学习成本。对于运维同学比较容易上手,但是对于研发同学就比较不友好。用户手册详细但是复杂,其中也有各种各样的限制,特别是遇到错误的时候不好处理。 开船难:用上 TiDB 之后,后续对 TiDB 集群进行运维(如扩容,升级),尤其在 PD 的扩容和缩容,安全性高,但是操作还是有些复杂。 开发上船容易翻:经常见到开发人员不知道水有多深,跟着文档在自己机器上尝试用 TiDB Ansible 部署 TiDB,结果一不小心就把系统改得面目全非。 为了改进和解决这些痛点,我们组队参加了 TiDB Hackathon 2019 比赛,编写了 TiExciting 项目,并最终获得大家的认可拿到了三等奖。 当前的上船门槛有多高? 在参赛前,我们先评估了一下之前的体感问题是不是真实存在的问题,因此我们在本次 Hackathon Ucloud 新集群上进行了一番实测: 队友 A:腾讯微信研发,从未接触过 TiDB,首次尝试部署: 按照 TiDB Ansible 超长的部署教程,部署 3

Best way to always run ansible inside a virtualenv on remote machines?

*爱你&永不变心* 提交于 2020-01-10 08:27:14
问题 Is there a better way to run ansible inside a virtualenv on the remote machines? So far the way I can see is to modify the .bashrc file, manually or with ansible itself. For example: tasks: - name: "Enable virtualenv in .bashrc" lineinfile: dest=.bashrc line="source {{ PROJECT_HOME }}/venv/bin/activate" # # Put tasks that rely on this precondition here (?) # # Optionally, disable this later on - name: "Disable virtualenv in .bashrc" lineinfile: dest=.bashrc line="source {{ PROJECT_HOME }}

In Ansible, how do I add a line to the end of a file?

可紊 提交于 2020-01-10 08:15:46
问题 I would expect this to be pretty simple. I'm using the lineinfile module like so: - name: Update bashrc for PythonBrew for foo user lineinfile: dest=/home/foo/.bashrc backup=yes line="[[ -s ${pythonbrew.bashrc_path} ]] && source ${pythonbrew.bashrc_path}" owner=foo regexp='^' state=present insertafter=EOF create=True The problem I'm having is that it's replacing the last line in the file (which is fi ) with my new line rather than appending the line. This produces a syntax error. Do I have

ansible新手入门

混江龙づ霸主 提交于 2020-01-10 07:38:41
一 ansible简介 1 ansible概述 ansible是2013年推出的一款IT自动化和devops软件,redhat于2015年将其收购,基于python开发,融合了很多运维工具的优点. 可以实现: 自动化部署APP 自动化管理配置项 自动化持续交付 自动化(AWS)云服务管理 2 选择ansible的原因 社区活跃度高,使用广泛 学习成本低 使用成本低 编码语言是Python,做二次开发容易 性能强大 功能强大,模块丰富 只需要ssh和python即可使用 无客户端 3 ansible特性 模块化设计,调用特定模块完成特定任务 支持json等标准输出格式,可以采用任何编程语言重写 部署简单,支持主从模式,支持自定义模块,支持playbook,支持多层部署,支持异构IT环境 4 工作流程 二 ansible安装 1 软件依赖关系 管理主机: 要求python2.6或2.7或以上版本 需要安装模块: paramiko pyyaml jinja2 httplib2 six 被托管主机: ansible需要通过ssh协议管理机器 需要安装python2.5 rsync 增量同步 rsync -a 基础命令合体 rsync -S 处理稀疏文件 2 安装ansible yum -y install ansible ansible --version 三 ad-hoc 1 主机管理

Is it possible to write Ansible hosts/inventory files in YAML?

人走茶凉 提交于 2020-01-09 03:18:04
问题 In the best practices page, there is an example that uses hosts.yml for hosts files: In the docs, however, I can only find the INI syntax for writing hosts files. What is the syntax for the inventory files in YAML? 回答1: Yes. It's been deprecated in version 0.6 in 2012 and reintroduced in a commit first included in version 2.1 in 2016. The example file on GitHub contains the guidelines and examples: Comments begin with the '#' character Blank lines are ignored Top level entries are assumed to

中小型企业通用自动化运维架构【视频教程】

让人想犯罪 __ 提交于 2020-01-08 21:27:23
第1章 自动化运维架构 主要讲解了自动化运维的概念,分析了现在的自动化运维的面临的挑战。基于我对自动运维的理解,提出了中小企业自动化运维架构,并讲解了该架构。后续的章节,主要是实现这个架构。 1-1 课程介绍 试看 1-2 自动化运维流程 第2章 服务器批量管理 Ansible Ansible作为一个优秀的IT资产管理、配置工具,这一章主要讲解了Ansible的使用,包括Ansible的安装、配置、使用,并且在课程的最后,结合我们公司业务的需求,实际演示了如何使用Ansible Playbook功能实现Zabbix的安装。 2-1 Ansible的介绍及流程 2-2 Ansible安装配置 2-3 Ad-hoc和Inventory的基本使用 2-4 使用ansible实战MySQL安装操作 2-5 什么是Ansible playbook 2-6 使用playbook完成一个helloword以及介绍playbook的基本结构 2-7 使用playbook实战Python环境的安装 2-8 Ansible实战安装Zabbix_Shell版 2-9 Ansible实战安装Zabbix_Playbook版 第3章 监控报警 Zabbix Zabbix作为一个非常强大的监控管理工具,这一章主要讲解的Zabbix的安装、配置,介绍了Zabbix的主要功能和使用方法,并且在课程的最后

ansible-playbook详解与简单应用

感情迁移 提交于 2020-01-08 19:13:36
一、什么是playbook playbooks是一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。 简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。 Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。 值得注意的是playbook是通过YAML格式来进行描述定义的。 playbook是由一个或多个模块组成的,使用多个不同的模块,完成一件事情。 playbook通过yaml语法识别描述的状态文件。扩展名是yaml 二、YAML语法 缩进: YAML使用一个固定的缩进风格表示层级结构,每个缩进由两个空格组成, 不能使用tab 冒号: 以冒号结尾的除外,其他所有冒号后面所有必须有空格。 短横线: 表示列表项,使用一个短横杠加一个空格。 多个项使用同样的缩进级别作为同一列表。 三、核心元素 Tasks:任务,由模板定义的操作列表 Variables:变量 Templates:模板,即使用模板语法的文件 Handlers:处理器 ,当某条件满足时,触发执行的操作 Roles:角色 四、hosts和users介绍 --- - hosts: all #可以是一个主机组、主机、多个主机,中间以冒号分隔,也可以用all参数表示所有主机 remote_user:

ansible 入门

▼魔方 西西 提交于 2020-01-08 15:08:43
ansible 入门 ansible是一款简单的运维自动化工具,只需ssh协议连接即可进行系统管理,自动化执行命令,部署等 特点: 1、不需要单独安装客户端,不需启动任何服务 2、是python中一套完整的自动化执行任务模块 3、playbook采用yaml配置,对于自动化任务执行一目了然 组成结构: a、ansible,命令工具,核心执行工具,一次性或临时执行的操作都是通过该命令 b、ansible playbook 任务剧本,编排定义ansible任务集的配置文件,顺序依次执行,yaml格式 c、inventory 管理主机的清单,默认/etc/ansible/hosts d、modules 执行命令的功能模块 e、plugins 插件 f、api 提供给第三方程序调用的应用程序编程接口 环境: server:192.168.10.193 client:192.168.10.191 192.168.10.192 192.168.10.194 192.168.10.195 192.168.10.196 centos7.6 1、配置epol源并安装ansible wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all yum makecache yum

ansible常用模块介绍

喜你入骨 提交于 2020-01-08 03:13:22
1、ping   例:ansible agent -m ping 2、setup   例:ansible agent -m setup -a "filter= filter参数 " 1 ansible_all_ipv4_addresses:仅显示ipv4的信息 2 ansible_devices:仅显示磁盘设备信息 3 ansible_distribution:显示是什么系统,例:centos,suse等 4 ansible_distribution_major_version:显示是系统主版本 5 ansible_distribution_version:仅显示系统版本 6 ansible_machine:显示系统类型,例:32位,还是64位 7 ansible_eth0:仅显示eth0的信息 8 ansible_hostname:仅显示主机名 9 ansible_kernel:仅显示内核版本 10 ansible_lvm:显示lvm相关信息 11 ansible_memtotal_mb:显示系统总内存 12 ansible_memfree_mb:显示可用系统内存 13 ansible_memory_mb:详细显示内存情况 14 ansible_swaptotal_mb:显示总的swap内存 15 ansible_swapfree_mb:显示swap内存的可用内存 16