首页 > 分享 > 架构一、Ansible基础及常用模块

架构一、Ansible基础及常用模块

Ansible-playbook
Playbook 常规使用,handiers,vars,template,with_items迭代

Handiers任务处理器

介绍playbook时提到handlers是任务处理器,和前面使用到的task一样都是用来定义任务,区别在于handlers需要满足某些条件时才会触发任务操作,所以需要一个任务通知者notify对应的handler后,任务才会被执行。不管有多少个通知者notify了handler,都需要等到playbook中所有task执行完成后,最后才执行对应的handlers,而且只会被执行一次。handler的使用也很简单,只需要在task中notify对应的handler即可,和tasks一样也可以创建多个handlers,一个task可以notify多个handlers,多个task也可以notify同一个handler,handler的定义和task的定义是一样的,定义handler的名称,使用的模块,以及给模块传递的参数;在task中只需要notify想要运行的handlser名称即可。 1 程序自动化的常用软件

Ansible:常用 基于python开发支持自己开发模块 基于ssh协议 轻量级 (300台以内)
Saltstacj:基于python开发 有客户端也有服务器 支持统一管理 轻量级 (300~1000内)
Puppet: 基于ruby开发 软件比较复杂 支持1000+台主机的管理 重量级 (谷歌国内少用)

Ansible 程序自动化

1.Ansible理论部分 特点、特性:模块化(模块多(3000),功能不同,用什么功能调用什么模块) 安全:基于openssh开发,管理远程的ssh开发 可定制模块: 三个核心模块:paramiko(远程管理ssh开发) PyYAML(支持剧本开发) Jinja2(支持模板语言) 幂等性:每次的操作结果都一样(名称一样内容不一样覆盖,同名同内容不操作同样成功) 2.基本命令 Ansible 操作对象 -m 模块 -a ‘参数’ 操作对象(webserver dbserver all’全部’) 3.常用模块15个 绿色:执行成功(本次操作执行成功,但是文件内容未修改) 黄色:执行成功且成功修改 红色:失败 12345678910111213

查询用法 ansible-doc -l | wc -l多少个模块 ansible-doc -s 模块名 查看模块用法

常用模块

Ping 用于检测被控端是否在线 ansible dbserver -m ping Command 只用于简单的命令 ansible all -m command -a 'ls /home' 参数可换 ‘date’ Shell 功能与Command相同但可执行更复杂的命令 * / 等等 ansible dbserver -m shell -a 'ls -l /tmp/test' 查询详情 ansible webserver -m shell -a 'rpm -qa | grep httpd' 查看是否安装过 ansible webserver -m shell -a 'systemctl is-enabled httpd' 启动服务 Cron 计时任务 ansible webserver -m cron -a 'minute=*/10 job="echo hello world" name="hello world"' 添加任务并起个任务名称 ansible webserver -m cron -a 'name="hello world" state=absent' 删除任务 日 day User 创建用户 ansible webserver -m user -a 'name=nginx create_home=no system =yes' 创建用户不指定家目录 并添加到系统 ansible webserver -m user -a 'name=nginx uid=777 group=sun shell=/bin/bash home=/tmp/nginx' 家目录先要自己创建 ansible webserver -m user -a 'name=nginx state=absent' 删除用户 ansible webserver -m user -a 'name=szd remove=yes state=absent' 删除用户并删除家目录 Group 创建组 ansible webserver -m group -a 'name=my state=absent' ansible webserverq -m group -a 'name=my gid=770 system=yes' Copy 拷贝文件 ansible webserver -m copy -a 'src=/usr/local/etc dest=/tmp/ backup=yes' 拷贝并备份 ansible dbserver -m file -a 'path=/etc/sun.conf state=touch' 创建文件 ansible dbserver -m copy -a 'src=/etc/sun.conf dest=/root remote_src=yes' 被控端的文件拷贝至被控端的其他目录 File 更改文件属性 创建目录 (0644四位权限?特殊权限位,拥有者位,同组用户位,其余用户位 ansible dbserver -m file -a 'path=/tmp/test owner=root group=root mode=0644 state=touch' 创建文件 ansible dbserver -m file -a 'path=/tmp/test owner=sun group=sun mode=0644 state=file' 修改文件属性 ansible dbserver -m file -a 'path=/tmp/java src=/usr/bin/java state=link' 创建软链接 ansible dbserver -m file -a 'path=/tmp/test.conf src=/etc/sysctl.conf state=hard' 创建硬链接 ansible dbserver -m file -a 'path=/test owner=sun group=sun recurse=yes' 递归修改 ansible dbserver -m file -a 'path=/tmp/test state=absent' 删除文件 写路径 Fetch 拷贝被控端的文件至主控端(只能获取文件,不能获取目录) ansible all -m fetch -a 'src=/var/log/messages dest=/date' yum -y install tree tree是用一种结构来看 tree /date/ ansible all -m replace -a "path=/root/aa.conf regexp='sunzhendong' replace='short_open_tag = On'" 替换 Yum 被控端yum安装 ansible webserver -m yum -a 'name=httpd state=absent' 删除下载软件 ansible webserver -m yum -a 'name=httpd,vsftpd state=installed' 下载多个软件用逗号分隔 Service 用于被控端各种服务管理(启动、停止、重启、重新加载等‘服务启动级别’runlevel’’) ansible webserver -m service -a 'name=httpd enabled=yes state=started' 启动服务,开机自启 ansible webserver -m service -a 'name=httpd state=stopped' 停止服务 ansible webserver -m service -a 'name=httpd state=restarted' 重启服务 Replace 替换(类似sed命令) ansible webserver -m replace -a 'dest=/tmp/nginx regexp=starting replace=789' 更换文本内容 Lineinfile 添加一行 ansible all -m lineinfile -a 'dest=/tmp/test line="192.168.11.sdasd"' 添加一个新行 ansible all -m lineinfile -a 'dest=/tmp/test line=szd=nihaoma state=absent' 删除一个行 Hostname 临时修改主机名称 ansible dbserver -m hostname -a 'name=dbserver' 修改主机名 Unarchive 主控端直接解压到被控端 ansible webserver -m unarchive -a 'src=/root/nginx-1.15.4.tar.gz dest=/usr/src' 解压 有时间做远程? Setup 获取被控端的值(查看版本、CPU、主机名、地址) ansible dbserver -m setup -a 'filter=*version*' 查看版本 *cpu* *hostname* address 也可查看 Script 执行脚本 ansible dbserver -m script -a 'test.sh'

java

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859

相关知识

ansible 使用copy模块
ansible的安装、简单使用、问题解决
单体架构的 PHP 程序如何转型?
Stef《现代架构花艺综合商业运用课程》即将开课
混合云的多活架构指南
基于共享虚拟机文件的异构混合云架构及管理方法与流程
冲击地压智能化防治系统架构及关键技术
智能诊断决策平台系统架构 流程图模板
完整的支付系统整体架构!
支付设计白皮书:支付系统的总架构

网址: 架构一、Ansible基础及常用模块 https://m.huajiangbk.com/newsview2484560.html

所属分类:花卉
上一篇: 初识云计算历史、服务、架构
下一篇: 产品架构师=产品代言人+总设计师