学网站建设需要什么,05网亮点给力大试卷,上门做网站哪里有,成都全美网站建设ansble概述
Ansible是一款自动化运维工具#xff0c;基于Python开发#xff0c;具有批量系统配置,批量程序部署, 批量运行命令等功能。
Ansible的很多模块在执行时都会先判断目标节点是否要执行任务#xff0c;所以#xff0c;可以放心大胆地让Ansible去执行任务#xf…ansble概述
Ansible是一款自动化运维工具基于Python开发具有批量系统配置,批量程序部署, 批量运行命令等功能。
Ansible的很多模块在执行时都会先判断目标节点是否要执行任务所以可以放心大胆地让Ansible去执行任务重复执行某个任务绝大多数时候不会产生任何副作用。同时ansible的剧本(playbooks) 可使用YAML语言进行编写。易于维护和扩展。
anisble 工作机制
ansibe 机制
ansible核心组件核心程序
hostinventory记录由ansible管理的主机信息 (包括端口、IP、密码等)
playbook剧本
YAM格式文件多个任务定义在一个文件中定义主机需要哪些模块来完成的功能
core modules核心模块 主要操作是通过调用核心模块来管理任务
custom modlues自动定义模块来完成核心无无法完成的功能支持多个语言
connection Plugins连接插件ansible和HOST通信使用
ansible特点
1、部署简单只需在主控端部署Ansible环境 被控端无需做任何操作
2、默认使用SSH协议设备进行管理
3、主从集中化管理
4、配置简单、功能强大、扩张性强
5、支持API及自定义模块,可以通过Pyhton轻松扩展
6、通过playbooks 来定制强大的配置、状态管理
7、对云计算平台、大数据都有很好的支持
日志模块
ansible 命令格式
ansible 组名 -m 模块 -a 参数列表
ansible-doc -1 列出所有已安装的模块按a退出
ansible-doc -s 模块名 指导模块使用方法
操作模块
1、command 模块
在远程主机执行命令不支持管道重定向等shell的特性。
ansible 192.168.10.14 -m command -a date #指定 ip 执行 date
ansible all -m command -a date #all 代表所有 hosts 主机
ansible all -a ls / #如省略 -m 模块则默认运行 command 模块 2、shell 模块
在远程主机执行命令相当于调用远程主机的shell进程然后在该shell下打开一个子shell运行命令模拟用户在主机上执行操作支持管道符号等功能。
ansible dbservers -m shell -a echo 123456 | passwd --stdin test 3、cron模块
在远程主机定义任务计划。其中有两种状态statepresent表示添加可以省略absent表示移除。
常用的参数
minute/hour/day/month/weekday分/时/日/月/周
job任务计划要执行的命令
name任务计划的名称
ansible webservers -m cron -a minute*/1 job/bin/echo helloworld nametest crontab
ansible webservers -m cron -a nametest crontab stateabsent #移除计划任务假如该计划任务没有取名字nameNone即可
4、user模块
用户管理的模块
常用的参数
name用户名必选参数
statepresent|absent创建账号或者删除账号present表示创建absent表示删除
systemyes|no是否为系统账号
uid用户uid
group用户基本组
shell默认使用的shell
move_homeyse|no如果设置的家目录已经存在是否将已经存在的家目录进行移动
password用户的密码建议使用加密后的字符串
comment用户的注释信息
removeyes|no当stateabsent时是否删除用户的家目录ansible dbservers -m user -a nametest01 #创建用户test01
ansible dbservers -m user -a nametest01 stateabsent #删除用户test01 5、group 模块
用户组管理的模块
ansible dbservers -m group -a namemysql gid306 systemyes #创建mysql组
ansible dbservers -m user -a nametest01 uid306 systemyes groupmysql #将test01用户添加到mysql组中 6、copy 模块
用于复制指定主机文件到远程主机
常用的参数
dest指出复制文件的目标及位置使用绝对路径如果是源目录指目标也要是目录如果目标文件已经存在会覆盖原有的内容
src指出源文件的路径可以使用相对路径或绝对路径支持直接指定目录如果源是目录则目标也要是目录
mode指出复制时目标文件的权限
owner指出复制时目标文件的属主
group指出复制时目标文件的属组
content指出复制到目标主机上的内容不能与src一起使用ansible dbservers -m copy -a src/etc/fstab dest/opt/fstab.bak ownerroot mode640
ansible dbservers -m copy -a contenthelloworld dest/opt/hello.txt #将helloworld写入/opt/hello.txt文件中 7、file 模块
设置文件属性
ansible dbservers -m file -a ownertest01 groupmysql mode644 path/opt/fstab.bak #修改文件的属主属组权限等
ansible dbservers -m file -a path/opt/fstab.link src/opt/fstab.bak statelink #设置/opt/fstab.link为/opt/fstab.bak的链接文件
ansible dbservers -m file -a path/opt/abc.txt statetouch #创建一个文件
ansible dbservers -m file -a path/opt/abc.txt stateabsent #删除一个文件 8、hostname 模块
用于管理远程主机上的主机名
ansible dbservers -m hostname -a namemysql01 9、ping 模块
检测远程主机的连通性
ansible all -m ping 10、yum 模块
在远程主机上安装与卸载软件包
ansible webservers -m yum -a namehttpd #安装服务
ansible webservers -m yum -a namehttpd stateabsent #卸载服务 11、service/systemd 模块
用于管理远程主机上的管理服务的运行状态
常用的参数
name被管理的服务名称
statestarted|stopped|restarted动作包含启动关闭或者重启
enabledyes|no表示是否设置该服务开机自启
runlevel如果设定了enabled开机自启去则要定义在哪些运行目标下自启动ansible webservers -a systemctl status httpd #查看web服务器httpd运行状态
ansible webservers -m service -a enabledtrue namehttpd statestarted #启动httpd服务 12、script 模块
实现远程批量运行本地的 shell 脚本
vim test.sh
#!/bin/bash
echo hello ansible from script /opt/script.txtchmod x test.sh
ansible webservers -m script -a test.sh
ansible webservers -a cat /opt/script.txt 13、setup 模块
facts 组件是用来收集被管理节点信息的使用 setup 模块可以获取这些信息
ansible webservers -m setup #获取mysql组主机的facts信息
ansible dbservers -m setup -a filter*ipv4 #使用filter可以筛选指定的facts信息 主机清单
Inventory变量名 含义
ansible_host ansible连接节点时的IP地址
ansible_port 连接对方的端口号ssh连接时默认为22
ansible_user 连接对方主机时使用的主机名。不指定时将使用执行ansible或ansible-playbook命令的用户
ansible_password 连接时的用户的ssh密码仅在未使用密钥对验证的情况下有效
ansible_ssh_private_key_file 指定密钥认证ssh连接时的私钥文件
ansible_ssh_common_args 提供给ssh、sftp、scp命令的额外参数
ansible_become 允许进行权限提升
ansible_become_method 指定提升权限的方式例如可使用
sudo/su/runas等方式
ansible_become_user 提升为哪个用户的权限默认提升为root
ansible_become_password 提升为指定用户权限时的密码