没有合适的资源?快使用搜索试试~ 我知道了~
首页Ansible 自动化运维工具笔记.pdf
资源详情
资源评论
资源推荐
Ansible 自动化运维工具笔记
一、Ansible基础篇
1.Ansible命令介绍
2.Ansible安装
3.Ansible主机与组定义
1、ansible :为核心命令,主要用于执行ad-hoc命令,后跟主机与选项部分,默认不指定模块时,使用command模块
2、ansible-doc :查看模块信息,常用参数为‘-l’与‘-s’,例:ansible-doc -s 模块名称
3、ansible-galaxy :用于在https://galaxy.ansible.com/ 站点下载第三方扩展模块,形似Centos的Yum。
4、ansible-lint :用于对playbook语法进行检查。
5、ansible-playbook :使用最多,通过读取playbook文件后,执行相应的操作,
6、ansible-pull :pull模式,平时使用的属push模式,适用于设备数量巨大以及ansible主机没有网络连接。
7、ansible-vault :用于对playbook配置的加密,避免部分密码配置泄露,使用cat也只能看见密码串,编辑时候需
要输入密码,在执行playbook任务时候,需要加“-ask-vault-pass”参数,同样输入密码后方可执行。
#yum -y install epel-release //安装红帽的源,自带yum的ansible软件包会报错
#yum -y install ansible //安装ansible包。
#ansible --version
ansible版本|配置文件路径|模块路径|Pthon对应模块路径|ansible二进制执行路径|python版本
#vi /etc/ansible/ansible.cfg //将此命令前的注释去掉,保存退出。
host_key_checking = False //跳过ssh首次连接提示验证部分,False表示跳过
文件目录:/etc/ansible/hosts
执行语法:ansible 主机/组 -m 模块名 -a 执行的命令
#vi /etc/ansible/hosts
[host1] #//host1代表主机与组的名称,下面的IP是组内的IP。
192.168.223.11
192.168.223.12
#192.168.223.[11:12] //主机(IP)较多可用[ip:ip]来表示,效果一样
主机可用域名,主机名,IP三种格式代表
[host2]
192.168.223.13
192.168.223.14
[cloud]
123.57.23.14
#ansible host2 -m command -a date #//对host2主机组的主机执行date命令,验证节点已添加
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-
keyex,gssapi-with-mic,password).",
显示此报错,是因为无法远程,没有相应的密码登录,加入“-k”选项,输入密码后,系统会自己保存,下次远程就
不需要“-k”选项了。注意:同一个主机变量组内的所有主机,密码必须一致。
#ansible host2 -m command -a date -k //-k选项为验证远程主机密码,在下面输入远程主机密码即可。
SSH password:
192.168.223.13 | CHANGED | rc=0 >>
Sat Jun 6 21:16:10 CST 2020
192.168.223.14 | CHANGED | rc=0 >>
Sat Jun 6 21:16:02 CST 2020
此状态显示为此成功,远程主机的密码符保存在/root/.ssh/know_hosts文件中,若有设备显示无法成功。
#vi /etc/ansible/hosts
[group:children] #//":children" 这个关键字为组变量,可将多个组组合起来,使
host1 #其同步,远程操作时候改为group,其下的两个组内的主机都将执
host2 #行指定命令
[gourp:vars] #变量指定group中host1和host2两个组下的所有主机远程密码。
ansible_ssh_pass='haihao' #指定后执行不需要输入密码也可以了。
# ansible group -m command -a date
192.168.223.11 | CHANGED | rc=0 >>
Sat Jun 6 22:47:50 CST 2020
192.168.223.14 | CHANGED | rc=0 >>
Sat Jun 6 22:47:27 CST 2020
192.168.223.12 | CHANGED | rc=0 >>
Sat Jun 6 22:47:43 CST 2020
192.168.223.13 | CHANGED | rc=0 >>
Sat Jun 6 22:47:36 CST 2020
常用主机变量:
ansible_ssh_host #用于指定被管理的主机的真实IP
ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22
ansible_ssh_user #ssh连接时默认使用的用户名
ansible_ssh_pass #ssh连接时的密码
ansible_sudo_pass #使用sudo连接用户时的密码
ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径
ansible_ssh_private_key_file #秘钥文件路径,秘钥文件如果不想使用ssh-agent管理时可以使用此选项
4.配置文件ansible.cfg
ansible_shell_type #目标系统的shell的类型,默认sh
ansible_connection #SSH 连接的类型:local , ssh , paramiko,在 ansible1.2之前默认是 paramiko
,后来智能选择,优先使用基于ControlPersist 的ssh
ansible_python_interpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定ruby
、perl的路径
ansible_*_interpreter #其他解释器路径,用法与ansible_python_interpreter类似,这里"*"可以是ruby或
perl等其它语言
#vi /etc/ansible/hosts
[group:vars] #自定义变量,定义servers的变量为sshd
servers=sshd
sshd_port=22
# ansible group -m command -a 'lsof -i :{{sshd_port}}' 自定义查看主机22端口的信息。
# ansible group -m command -a 'pgrep -f {{servers}}' #可以看sshd服务对应的ID号了。
192.168.223.13 | CHANGED | rc=0 >>
6997
23169
192.168.223.12 | CHANGED | rc=0 >>
7024
23900
192.168.223.11 | CHANGED | rc=0 >>
6999
23442
192.168.223.14 | CHANGED | rc=0 >>
6959
22995
目录:/etc/ansible/ansible.cfg
#inventory = /etc/ansible/hosts #表示资源清单的文件位置,就是Ansible管理的主机列表
#library = /usr/share/my_modules/ #Ansible运行都需要使用模块,这个路径就是模块存放的路径
#module_utils = /usr/share/my_module_utils/ #一样也是模块默认的存放路径,一般不要改。
#remote_tmp = ~/.ansible/tmp #指定远程执行的路径;ansible在远程主机上操作时,会在对应
远程主机用户的/目录下创建‘.ansible’这个目录,然后再创建一个tmp文件,ansible管理端会把相关模块的python脚
本拷贝到此文件里,然后远程节点根据这个pthon配置脚本文件来执行操作。
#local_tmp = ~/.ansible/tmp #管理节点的执行路径;在ansible管理端本地也会有这个一个文件,
将一些功能模块放进去,来执行相应的操作。
#forks = 5 #定义并发处理的进程数量,通俗的讲就是定义能有多少个进程同时工作,
这个需要根据主机的性能和被管理的节点数量来控制。
#poll_interval = 15 #轮训的间隔
#sudo_user = root #sudo使用的默认用户 ,默认是root
#ask_sudo_pass = True #是否需要用户输入sudo密码
#ask_pass = True #是否需要用户输入连接密码
#remote_port = 22 #这是指定连接对端节点的管理端口,默认是22,除非设置了特殊的SSH端口,
不然这个参数一般是不需要修改的
#module_lang = C #这是默认模块和系统之间通信的计算机语言,默认为’C’语言.
#host_key_checking = False #跳过ssh首次连接提示验证部分,False表示跳过,推荐去掉注释
#timeout = 10 #连接超时时间
#module_name = command #指定ansible默认的执行模块
#nocolor = 1 #默认ansible会为输出结果加上颜色,用来更好的区分状态信息和失败信息.如
5.ad-hoc命令
6.Command模块
果你想关闭这一功能,可以把’nocolor’设置为‘1’:
#private_key_file=/path/to/file.pem #在使用ssh公钥私钥登录系统时候,使用的密钥路径。
ad-hoc是指ansible下执行一条命令,并且不需要保存命令。ad-hoc所有的命令都要依赖于模块,默认安装好的
ansible里有很多自带的模块,例如:command,raw,shell,file,cron等,可通过“ansible-hoc -l”查看,正常
的ad-hoc命令在使用时都用ansible来代替。例如:`ansible host2 -m command -a date`,这里的ansible就代
表的是ad-hoc命令。
常用的ansible选项参数:
-m 模块名:指定要执行的模块的名称,如果不指定-m选项,默认是command模块。
-a 命令:指定执行模块对应的参数选项。
-k:提示输入SSH登录的密码而不是基于密钥的验证,小写k
-K:用于输入执行su或sudo操作时需要的认证密码,大写K
-b:表示提升权限操作。新版ansible才有的一个选项操作。
--become-method:指定提升权限的方法,常用的有 sudo和su,默认是sudo。
--become-user:指定执行 sudo或su命令时要切换到哪个用户下,默认是root用户。
-B SECONDS:后台运行超时时间
-C:测试一下会改变什么内容,不会真正去执行,主要用来测试一些可能发生的变化
-f FORKS,:设置ansible并行的任务数。默认值是5
-i INVENTORY: 指定主机清单文件的路径,默认为/etc/ansible/hosts。。
-h :查看帮助,关于ad-hoc的一些选项的详细参数
执行格式:
# ansible 主机或组 -m 模块名 -a ‘模块参数’ ansible参数
主机和组:是在/etc/ansible/hosts 里进行指定的部分,这里可以用主机名/IP/域名/all,当然动态Inventory
使用的是脚本从外部应用里获取的主机。
模块名:可以通过ansible-doc -l 查看目前安装的模块,默认不指定时,使用的是command模块,具体可以查
看/etc/ansible/ansible.cfg 的“#module_name = command ” 部分,默认模块可以在该配置文件中进行修改;
模块参数:可以通过 “ansible-doc 模块名” 查看具体的用法及后面的参数;
ansible参数:可以通过ansible命令的帮忙信息里查看到,这里有很多参数可以供选择,如是否需要输入密码、是
否sudo等。
command模块包含如下选项:
creates:后跟文件名,文件名后再跟命令。当该文件存在,则该命令不执行,反正,则执行。一般用于检测服务有没有
开启。
free_form:要执行的linux指令
chdir:在执行指令之前,先切换到该指定的目录
removes:后跟文件名,文件名后再跟命令,当该文件存在时,则该选项执行,反之,不执行。
注意:command模块的执行,在远程主机上,需要有python环境的支持。
该模块通过-a跟上要执行的命令可以直接执行,不过命令里如果有带有特殊字符( “<“, “>”, “|”, “&”等)那么则
执行不成功。
举例:
①chdir举例
# ansible host1 -m command -a 'chdir=/tmp pwd'
剩余16页未读,继续阅读
大鱼海棠i
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0