当前位置: 首页 > news >正文

社区网站建设平台潍坊市建设一体化平台网站

社区网站建设平台,潍坊市建设一体化平台网站,做问卷哪个网站好,可以制作应用的软件目录 一. Ansible 的相关知识 1.1 Ansible 工具的简介 1.2 Ansible的四大组件 1.3 运维自动化工具 1.4 Ansible 和其它自动化运维工具对比 1.5 Ansible 的优缺点 二. Ansible 环境安装部署 2.1 管理端安装 ansible 2.2 配置主机清单 三. ansible 命令行模块 3.1 comm…目录 一. Ansible 的相关知识 1.1 Ansible 工具的简介 1.2 Ansible的四大组件 1.3 运维自动化工具 1.4 Ansible 和其它自动化运维工具对比 1.5 Ansible 的优缺点 二. Ansible 环境安装部署 2.1 管理端安装 ansible 2.2 配置主机清单 三. ansible 命令行模块 3.1 command 模块 3.2 shell 模块 3.3 cron 模块 3.4 user 模块 3.5 group 模块 3.6 copy 模块 3.7 file 模块 3.8 hostname 模块 3.9 ping 模块 3.10 yum 模块 3.11 service/systemd 模块  3.12 script 模块 3.13 setup 模块 一. Ansible 的相关知识 1.1 Ansible 工具的简介 Ansible 是一个基于 Python 开发的配置管理和应用部署工具现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点Pubbet 和 Saltstack 能实现的功能Ansible 基本上都可以实现。 Ansible 能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作使用 Ansible 只需在固定的一台 Ansible 控制节点上去完成所有主机的操作。 Ansible 在管理节点将 Ansible 模块通过 ssh 协议 推送到被管理机端执行执行完自动删除 1.2 Ansible的四大组件 Inventory 主机清单主机组Modules 模块Plugins 插件Playbooks 剧本相当于脚本 Ansible 是基于模块工作的它只是提供了一种运行框架它本身没有完成任务的能力真正执行操作的是 Ansible 的模块 比如 copy 模块用于拷贝文件到远程主机上service 模块用于管理服务的启动、停止、重启等。 Ansible 其中一个比较鲜明的特性是 Agentless即无 Agent 的存在它就像普通命令一样并非C/S软件也只需在某个作为控制节点的主机上安装一次 Ansible 即可通常它基于 ssh 连接来控制远程主机远程主机上不需要安装 Ansible 或其它额外的服务。 使用者在使用时在服务器终端输入命令或者 playbooks会通过预定好的规则将 playbook 拆解为play再组织成 Ansible 可以识别的任务调用模块和插件根据主机清单通过 SSH 将临时文件发给远程的客户端执行并返回结果执行结束后自动删除 Ansible 的另一个比较鲜明的特性是它的绝大多数模块都具备幂等性(idempotence)。所谓幂等性指的是多次操作或多次执行对系统资源的影响是一致的。比如执行 systemctl stop xxx 命令来停止服务当发现要停止的目标服务已经处于停止状态 它什么也不会做所以多次停止的结果仍然是停止不会改变结果它是幂等的而 systemctl restart xxx 是非幂等的。 当使用Ansible来集中管理一组客户机时首要步骤是通过主机清单文件来组织和识别目标机器。在这个清单文件中管理员会按照组名来划分和定义各组客户机通常会列出每组对应的IP地址或主机名。这样在调用某个组名时Ansible就会知道需要对哪些特定的客户机执行管理任务。 在批量操控这些客户机时Ansible提供了两种策略来组织和执行任务 Playbooks剧本式管理这是一种采用YAML格式编写的文件它能够以清晰的层次结构描述多个任务。在Playbook中你可以指定一组主机通过之前定义的组名引用然后为这些主机安排一系列模块调用每个模块代表一个具体的操作比如安装软件、配置服务或修改文件内容等。Ansible内建了一套丰富的核心模块来满足大部分基础运维需求。 自定义模块对于那些Ansible内置模块不能直接处理的复杂或者特定功能可以自行编写自定义模块。这些模块可以用Python、Perl、Shell或其他支持的语言编写目的是为了扩展Ansible的能力使之能应对更多样化的自动化运维场景。 执行过程中Ansible会通过相应的连接插件如SSH或WinRM与远程主机建立通信发送要执行的命令或调用的模块给目标客户机执行。为了便于管理和审计Ansible还支持通过插件记录操作日志甚至可以配置邮件插件将执行结果自动发送至指定邮箱以便及时了解任务执行的状态和详情。 Ansible 的很多模块在执行时都会先判断目标节点是否要执行任务所以可以放心大胆地让Ansible 去执行任务重复执行某个任务绝大多数时候不会产生任何副作用。 1.3 运维自动化工具 1.4 Ansible 和其它自动化运维工具对比 Ansible 是一个能实现批量部署的自动化运维工具基于python开发能实现批量系统配置批量部署程序批量运行命令。Ansible主要是提供一种批量部署的框架系统由控制主机和被管理主机组成。  项目 SaltStack Ansible BatchShell 开发语言 Python Python Java 是否有客户端 有 无非c/s架构 有 是否支持二次开发 支持 支持 支持 服务器与远程机器是否相互验证 是 是 是 服务器与远程机器的通信是否加密 是使用AES加密 是使用OpenSSH 是使用OpenSSH、FTPS等多种加密协议 平台支持 BSD, Linux , Mac OS X,Solaris,Windows AIX , BSD , HP-UX , Linux,Mac OS X ,Solaris AIX , BSD , HP-UX , LinuxMac OS X Solaris 是否提供Web UI 提供 商业版本提供 提供 配置文件格式 YAML YAML 原生Shell 命令行执行 支持 支持 支持 是否有客户端 有 无 有 是否支持二次开发 支持 支持 支持 可视化文本编辑、查询、替换 无 无 支持 1.5 Ansible 的优缺点 优点  部署较为简单, 只需要在控制主机上部署 Ansible 环境,被控制端上只要求安装 ssh 和 python 2.5以上版本,对于运维人员使用门槛低。被管控节点无需安装 Agent无服务端,使用是直接调用控制端命令或者脚本。基于模块工作, 可以使用任意语言开发模块基于 yaml 语法编写 playbook定义的任务已存在则不会做任何事情,意味着在同一台服务器上多次执行同一个 playbook 是安全的 缺点  学习成本需要学习 Ansible 自定义的脚本语法规则。安装成本控制主机需是一台非 Windows 远程主机也就是说至少要有1台远程 Server。易用性因为必须有远程主控机若本地有文件需同步则需先将文件传输到对应的主控机才能够做分发同步。 二. Ansible 环境安装部署 服务器种类服务器IP工具管理端192.168.44.70Ansible被管理端192.168.44.60无被管理端192.168.44.50无 2.1 管理端安装 ansible yum install -y epel-release //先安装 epel 源 yum install -y ansible 2.2 配置主机清单 cd /etc/ansible vim hosts [webservers] #配置组名 192.168.44.60 #组里包含的被管理的主机IP地址或主机名主机名需要先修改/etc/hosts文件[dbservers] 192.168.44.50 ansible 默认使用ssh连接所以管理前要设置免密登录 #配置密钥对验证 ssh-keygen -t rsa #一路回车生成密钥文件​ vim /etc/ssh/ssh_config #修改ssh服务端和ssh客户端配置文件 StrictHostKeyChecking no #35行取消注释将ask修改为no开启免交互​ systemctl restart sshd #重启sshd配置密钥对验证 ssh-keygen -t rsa #一路回车使用免密登录 sshpass -p 123 ssh-copy-id root192.168.44.60 sshpass -p 123 ssh-copy-id root192.168.44.50 输出内容解释 三. ansible 命令行模块 格式 命令格式ansible 组名 -m 模块 -a 参数列表 查看ansible的所有模块 ansible-doc -l#列出所有已安装的模块按q退出 3.1 command 模块 在远程主机执行命令不支持管道重定向等shell的特性。 ansible-doc -s command #-s 列出指定模块的描述信息和操作动作 ansible 192.168.44.60 -m command -a date #指定 ip 执行 date ansible webservers -m command -a date #指定组执行 date ansible dbservers -m command -a date ansible all -m command -a date #all 代表所有 hosts 主机 ansible all -a ls / #如省略 -m 模块则默认运行 command 模块 常用的参数 chdir在远程主机上运行命令前提前进入目录 creates判断指定文件是否存在如果存在不执行后面的操作 removes判断指定文件是否存在如果存在执行后面的操作 3.2 shell 模块 在远程主机执行命令相当于调用远程主机的 shell 进程然后在该 shell 下打开一个子 shell 运行命令支持管道符号等功能  ansible-doc -s shellansible dbservers -m shell -a echo 123456 | passwd --stdin agag 登录测试一下 ansible dbservers -m shell -a echo $(ifconfig ens33 | awk NR2 {print $2}) | cut -d -f2 #以空格为分隔符 打印第二列 ansible dbservers -m shell -a echo $(ifconfig ens33 | awk NR2 {print \$2}) 3.3 cron 模块 在远程主机定义任务计划。其中有两种状态statepresent 表示添加可以省略absent 表示移除。 ansible-doc -s cron #按 q 退出//常用的参数 minute/hour/day/month/weekday分/时/日/月/周 job任务计划要执行的命令 name任务计划的名称ansible webservers -m cron -a minute*/1 job/usr/bin/echo nihao xyl nametest crontabansible webservers -a crontab -l ansible webservers -m cron -a nametest crontab stateabsent#移除计划任务假如该计划任务没有取名字nameNone即可 3.4 user 模块 //用户管理的模块 ansible-doc -s 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#查看 ansible dbservers -m command -a tail /etc/passwd 但是家目录并没有被删除 要想这个一起被删除需要加上 removeyes 3.5 group 模块 //用户组管理的模块 ansible-doc -s groupansible dbservers -m group -a nametest02 gid520 systemyes #创建test组 ansible dbservers -a tail /etc/group ansible dbservers -m user -a nametest03 uid1314 systemyes grouptest02 #将test03用户添加到test02组中ansible dbservers -a tail /etc/passwd ansible dbservers -a id test03 3.6 copy 模块 //用于复制指定主机文件到远程主机的 ansible-doc -s copy//常用的参数 dest指出复制文件的目标及位置使用绝对路径如果源是目录指目标也要是目录如果目标文件已经存在会覆盖原有的内容 src指出源文件的路径可以使用相对路径或绝对路径支持直接指定目录如果源是目录则目标也要是目录 mode指出复制时目标文件的权限 owner指出复制时目标文件的属主 group指出复制时目标文件的属组 content指出复制到目标主机上的内容不能与src一起使用ansible dbservers -m copy -a src/etc/fstab dest/opt/fstab.bak ownerroot mode777 ansible dbservers -a ls -l /opt ansible dbservers -a cat /opt/fstab.bak ansible dbservers -m copy -a contenthi yz dest/opt/hi.txt #将hi yz写入/opt/hi.txt文件中 ansible dbservers -a cat /opt/hi.txt 3.7 file 模块 //设置文件属性 ansible dbservers -m file -a ownerxyl groupxyl 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 #删除一个文件 3.8 hostname 模块 //用于管理远程主机上的主机名 ansible dbservers -m hostname -a namedbservers-user 3.9 ping 模块 //检测远程主机的连通性 ansible all -m ping 3.10 yum 模块 ansible-doc -s yumansible webservers -m yum -a namehttpd #安装服务 在该命令任务中添加warn: false或在ansible.cfg配置文件中设置command_warningsFalse来禁用此警告。 ansible dbservers -m yum -a namehttpd stateabsent #卸载服务 3.11 service/systemd 模块  //用于管理远程主机上的管理服务的运行状态 ansible-doc -s service//常用的参数 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服务 并设置开机自启 管理服务名称叫 httpd 3.12 script 模块 //实现远程批量运行本地的 shell 脚本 ansible-doc -s scriptvim test.sh #!/bin/bash echo this is a test script /opt/script.txtchmod x test.sh ansible webservers -m script -a test.sh ansible webservers -a cat /opt/script.txt 3.13 setup 模块 //facts 组件是用来收集被管理节点信息的使用 setup 模块可以获取这些信息 ansible-doc -s setupansible webservers -m setup #获取webservers组主机的facts信息ansible webservers -m setup -a filter*ipv4 #使用filter可以筛选指定的facts信息 总结 ansible 命令格式 ansible 组名 -m模块 -a参数列表 ansible-doc    -l    列出所有已安装的模块  按q退出 ansible-doc   -s  模块名  指导模块使用方法 操作模块 commandshellcronusergroupcopyfilehostnamepingyumservice/systemdscriptsetup command 模块 注意在远程主机执行命令不支持管道重定向等shell的特性。  ansible 指定的IP -m command -a Linux基础命令 #指定 ip 执行 基础命令 ansible 组名 -m command -a Linux基础命令 #指定组执行基础命令 ansible all -m command -a linux基础命令 #指定所有被管理的主机执行该命令 ansible all -a linux基础命令 #如省略 -m 模块则默认运行 command 模块 //常用的参数 chdir在远程主机上运行命令前提前进入目录 creates判断指定文件是否存在如果存在不执行后面的操作 removes判断指定文件是否存在如果存在执行后面的操作 shell 模块 在远程主机执行命令相当于调用远程主机的shell进程然后在该shell下打开一个子shell运行命令支持管道符号等功能 ansible-doc -s shellansible dbservers -m shell -a -a 中可以使用shell常用的一些命令注意像awk这种本身使用 来执行后续命令的命令时 单引号需要变为双引号如果涉及变量则“$”前需要加转义字符“\” cron 模块: //在远程主机定义任务计划。其中有两种状态statepresent表示添加可以省略absent表示移除。 ansible-doc -s cron #按 q 退出//常用的参数 minute/hour/day/month/weekday分/时/日/月/周 job任务计划要执行的命令 name任务计划的名称#设定计划性任务 ansible xxxx组 -m cron -a 时间规则 job绝对路径执行的命令 name计划性任务的名称#查看xxx组中的计划性任务 ansible webservers -a crontab -l#删除xxxx组的计划性任务 ansible xxx -m cron -a name任务名称 crontab stateabsent #移除计划任务假如该计划任务没有取名字nameNone即可 user 模块 //用户管理的模块 ansible-doc -s user//常用的参数 name用户名必选参数 statepresent|absent创建账号或者删除账号present表示创建absent表示删除 systemyes|no是否为系统账号 uid用户uid group用户基本组 shell默认使用的shell move_homeyse|no如果设置的家目录已经存在是否将已经存在的家目录进行移动 password用户的密码建议使用加密后的字符串 comment用户的注释信息 removeyes|no当stateabsent时是否删除用户的家目录 group模块  //用户组管理的模块 ansible-doc -s group#创建xxxx组中所有的xxx用户组 ansible dbservers -m group -a namexxx gidxxx systemyes #查看用户组的信息 ansible dbservers -a tail /etc/group #将用户添加到用户组 ansible dbservers -m user -a namexxxx uidxx systemyes groupxxx #将test01用户添加到xxxzu #查看用户信息 ansible dbservers -a tail /etc/passwd#查看用户的相关组的信息 ansible dbservers -a id 用户名 copy模块 //用于复制指定主机文件到远程主机的 ansible-doc -s copy//常用的参数 dest指出复制文件的目标及位置使用绝对路径如果源是目录指目标也要是目录如果目标文件已经存在会覆盖原有的内容 src指出源文件的路径可以使用相对路径或绝对路径支持直接指定目录如果源是目录则目标也要是目录 mode指出复制时目标文件的权限 owner指出复制时目标文件的属主 group指出复制时目标文件的属组 content指出复制到目标主机上的内容不能与src一起使用eg ansible dbservers -m copy -a src/etc/fstab dest/opt/fstab.bak ownerroot mode640 file 模块 //设置文件属性 ansible-doc -s fileansible dbservers -m file -a ownerxxx groupxxx modexxx path文件路径 #修改文件的属主属组权限等 ansible dbservers -m file -a path链接文件路径 src源文件路径 statelink #设置链接文件 ansible dbservers -m file -a path文件路径 statetouch #创建一个文件 ansible dbservers -m file -a path文件路径 stateabsent #删除一个文件 hostname模块  //用于管理远程主机上的主机名 ansible dbservers -m hostname -a name主机名 ping 模块  //检测远程主机的连通性 ansible all -m pingansible xxx组 -m ping yum 模块 //在远程主机上安装与卸载软件包 ansible-doc -s yumansible webservers -m yum -a name服务名 #安装服务 ansible webservers -m yum -a name服务名 stateabsent #卸载服务 service/systemd 模块    //用于管理远程主机上的管理服务的运行状态 ansible-doc -s service//常用的参数 name被管理的服务名称 statestarted|stopped|restarted动作包含启动关闭或者重启 enabledyes|no表示是否设置该服务开机自启 runlevel如果设定了enabled开机自启去则要定义在哪些运行目标下自启动ansible xxx组 -a systemctl status 服务名 #查看web服务器httpd运行状态 ansible xxx组 -m service -a enabledtrue name服务名 statestarted #启动httpd服务 script 模块  //实现远程批量运行本地的 shell 脚本 ansible-doc -s script首先编写一个shell脚本赋予执行权限 ansible xxx组 -m script -a 脚本名称 setup 模块 //facts 组件是用来收集被管理节点信息的使用 setup 模块可以获取这些信息 ansible-doc -s setupansible xxx组 -m setup #获取mysql组主机的facts信息 ansible xxx组 -m setup -a filter想要的字段 #使用filter可以筛选指定的facts信息 注意以上的所有模块你可以用组名来指定命令实行的范围也可以用 all 表示全部也直接可以用 IP 来对单机进行指定 个人建议既然是按组划分了批量管理的主机最好让 webservers 和 dbservers 两个组的成员IP最好是组成员的IP是具有连续性最好两个组的成员的 IP 都像一个取值范围一样两个组的成员IP不要有交叉方便管理。
http://www.tj-hxxt.cn/news/133474.html

相关文章:

  • 中国大良网站建设沈阳网页制作设计
  • 瀑布流网站有哪些哈尔滨网站建设有哪些
  • 顺德网站制作案例价格江门移动网站建设公司
  • 电商型网站建设莱州网站设计
  • 建设局象山网站专门做网站的公司交什么
  • 彩票网站模版注册商标怎么注册商标
  • 北京商城网站建设费用成立公司有什么好处和坏处
  • 网站要怎么样做排名才上得去wordpress版权所有
  • 做新闻类网站如何盈利网站解析后怎么解决方法
  • 网站数据库是干什么的2021年新闻摘抄
  • 网站制作 杭州公司房地产估价师
  • 哈密网站制作wordpress 搜索目录
  • 做二手平台公益的网站企业邮箱安全吗
  • 网站报价书中国与菲律宾最新事件
  • 太原网站建设价格官网建设报价
  • 银川公司网站建设wordpress宝宝网商城免费模板下载
  • 企业网站建设分为那几个阶段门户网站建站注意事项
  • 网站职位推荐怎么做网站域名 邮箱
  • 低价网站建设策划内容商城小程序公司
  • 网站设计一级网页网站建设阿华seo
  • 重庆网站建设公司那好网站博客自媒体轻松
  • 设计素材网站月收益多渠道营销系统
  • 随州网站seo手机网站生成
  • 深圳市高端网站建设4昌平区网站建设
  • 免费视频网站制作找个网站
  • 福州优秀网站建设公司流量最大的网站
  • 学习网站建设好找工作吗HTML5网站建设案例
  • 网站开发的质量标准瑞金建设局网站
  • 莆田网站建设维护网站建设费的会计处理
  • 长沙需要做网站的企业精品外贸网站 dedecms