
inventory内置参数
参考解释例子
1)ansible_ssh_host
将要连接的远程主机名与你想要设定的主机的别名不同的话,可通过此变量设置
eg: ansible_ssh_host=1921691123
2)ansible_ssh_port
ssh端口号如果不是默认的端口号,通过此变量设置
eg:ansible_ssh_port=5000
3)ansible_ssh_user 默认的 ssh 用户名
eg:ansible_ssh_user=cxpadmin
4)ansible_ssh_passssh
密码(这种方式并不安全,我们强烈建议使用 --ask-pass 或 SSH 密钥)
eg:ansible_ssh_pass=’123456’
5)ansible_sudo_passsudo
密码(这种方式并不安全,我们强烈建议使用 --ask-sudo-pass)
eg:ansible_sudo_pass=’123456’
6)ansible_sudo_exesudo
命令路径(适用于18及以上版本)
eg:ansible_sudo_exe=/usr/bin/sudo
7)ansible_connection
与主机的连接类型比如:local, ssh 或者 paramiko
Ansible 12 以前默认使用 paramiko12 以后默认使用 'smart','smart' 方式会根据是否支持 ControlPersist, 来判断'ssh' 方式是否可行
eg:ansible_connection=local
8)ansible_ssh_private_key_filessh
使用的私钥文件适用于有多个密钥,而你不想使用 SSH 代理的情况
eg:ansible_ssh_private_key_file=/root/key
9)ansible_shell_type
目标系统的shell类型默认情况下,命令的执行使用 'sh' 语法,可设置为 'csh' 或 'fish'
eg:ansible_shell_type=zsh
10)ansible_python_interpreter
目标主机的 python 路径适用于的情况: 系统中有多个 Python, 或者命令路径不是"/usr/bin/python",比如 \BSD, 或者 /usr/bin/python,
不是 2X 版本的 Python我们不使用 "/usr/bin/env" 机制,因为这要求远程用户的路径设置正确,且要求 "python" 可执行程序名不可为 python以外的名字(实际有可能名为python26)
eg:ansible_python_interpreter=/usr/bin/python26
11)ansible__interpreter
定义其他语言解释器
eg:ansible__interpreter=/usr/bin/ruby
12)ansible_sudo
定义sudo用户
eg:ansible_sudo=cxpadmin
注:从ansible20开始,
ansible_ssh_user ----------------->ansible_user
ansible_ssh_host ------------------->ansible_host
ansible_ssh_port ------------------> ansible_port
Ansible是一个简单强大且无代理的自动化语言。29是升级版本。
Ansible是基于Python开发的,所以推荐Python27及以上版本。简单易读:基于 YAML 文本编写,易于阅读,非专业的开发人员也可以编写。功能强大:它可以同于管理配置,软件安装,流程自动化无代理:不需要在客户端安装额外的 agent跨平台支持:支持 linux,Windows,Unix 和网络设备。
Ansible 典型的工作方式是通过一个脚本文件(基于 YAML 格式构建的)去控制远端 *** 作系统按照特定的顺序执行相关任务,我们称这个文件为 playbook。
为什么要自动化运维
我们以 10 台机器部署 Nginx 为例。部署步骤如下:
1、通过 ssh 登录一台机器;
2、yum install -y nginx 或者 获取安装包自行编译安装;
3、配置 Nginx
4、启动 Nginx ,如有必要加入开机自启动;
5、退出登录
上面步骤重复 10 次,即可完成我们的部署要求。
痛点:
1、重复 *** 作频繁,增加了人工成本和后续维护成本;
2、机器太多时,容易落下某些机器且未 *** 作,进而产生后续影响;
3、人工频繁 *** 作时可能有 *** 作步骤不完整的情况,造成该机器和其他机器状态不一致。
我们还是以 10 台机器部署 Nginx 为例。部署步骤如下:
1、在控制机或者称为管理机的机器上写好相关脚本。「当然该脚本我们是测试通过的,脚本中包括安装、配置、启动等等」
2、将写好的脚本从控制机推送到受控机;
3、在受控机执行相关脚本,根据脚本部署我们需要的 Nginx。
好处
1、减少了重复 *** 作,提高了工作效率;
2、减小了出错几率,提高了准确率;
3、所有机器状态一致,降低了后续维护成本。
软件安装部署
配置同步
代码变更
命令执行
任务执行
Ansible 是基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能的自动化管理工具。
Ansible 是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是 Ansible 所运行的模块,Ansible 只是提供一种框架。进而能减少我们的重复 *** 作,提高工作效率。
Ansible 不需要在远程主机上安装 client/agents,因为它们是基于 SSH 来和远程主机通讯的。
Ansible 目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。
1、批量执行远程命令:可以对 N 台主机同时进行命令的执行;
2、批量配置软件服务:可以用自动化的方式管理配置和服务;
3、实现软件开发功能:例如 jumpserver 底层使用 Ansible 来实现自动化管理;
4、编排高级的 IT 任务:Ansible 的 Playbooks 是一门编程语言,可以用来描绘一套 IT 架构。
1、部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何 *** 作;
2、安全可靠,默认使用 SSH 协议对被控端进行管理;
3、有大量的常规运维 *** 作模块,可实现日常绝大部分 *** 作;
4、配置简单、功能强大、扩展性强;
5、支持 API 及自定义模块,可通过 Python 轻松扩展;
6、通过 Playbooks 来定制强大的配置、状态管理;
7、轻量级,无需在客户端安装 Agent,更新时只需在 *** 作机上进行一次更新即可。
模块说明如下:
Ansible:Ansible 核心程序。
Host Inventory:记录由 Ansible 管理的主机信息清单,包括端口、密码、IP 等。
Playbooks:“剧本” YAML 格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能。
Core Modules:核心模块,主要 *** 作是通过调用核心模块来完成管理任务。
Custom Modules:自定义模块,完成核心模块无法完成的功能,支持多种语言。
Connection Plugins:连接插件,Ansible 和 Host 通信使用
Ansible 控制主机对被管节点的 *** 作方式可分为两类,即 ad-hoc 和 playbook:
ad-hoc 模式(点对点模式)
使用单个模块,支持批量执行单条命令。ad-hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令。 就相当于 bash 中的一句 shell。
playbook 模式(剧本模式)
是 Ansible 主要管理方式,也是 Ansible 功能强大的关键所在。 playbook 通过多个 tasks 集合完成一类功能 ,如 Web 服务的安装部署、数据库服务器的批量备份等。可以简单地把 playbook 理解为通过组合多条 ad-hoc *** 作的配置文件。
简单理解就是:Ansible 在运行时,首先读取 ansiblecfg 中的配置,根据规则获取 Inventory 中的管理主机列表,并行的在这些主机中执行配置的任务,最后等待执行返回的结果。
1、加载自己的配置文件,默认 /etc/ansible/ansiblecfg;
2、查找对应的主机配置文件,找到要执行的主机或者组;
3、加载自己对应的模块文件,如 command;
4、通过 Ansible 将模块或命令生成对应的临时py文件(python脚本),并将该文件传输至远程服务器;
5、对应执行用户的家目录的 ansible/tmp/XXX/XXXPY文件;
6、给文件 +x 执行权限;
7、执行并返回结果;
8、删除临时py文件,sleep 0退出;
Ansible是一款极其简单的IT自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架。Ansible主要承担的工作包括:配置管理、服务即时开通、应用部署、流程编排、监控告警、日志记录等。
两台Nginx作为Web Proxy,配置实现KeepAlived做主备;后端两台Apache,一台部署Apache+PHP,一台部署Apache+MySQL。
以上就是关于ansible 内置参数全部的内容,包括:ansible 内置参数、ansible2.7和2.9区别、Ansible-基本概述等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)