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

塔城市建设局网站粤嵌培训机构官网

塔城市建设局网站,粤嵌培训机构官网,企业宣传ppt案例欣赏,空气净化器用什么网站做外贸目录 前言 一、概述 常见的开源自动化运维工具比较 二、ansible环境搭建 三、ansible模块 #xff08;一#xff09;、hostname模块 #xff08;二#xff09;、file模块 #xff08;三#xff09;、copy模块 #xff08;四#xff09;、fetch模块 #xff…目录 前言 一、概述 常见的开源自动化运维工具比较 二、ansible环境搭建 三、ansible模块 一、hostname模块 二、file模块 三、copy模块 四、fetch模块 五、user模块 六、group模块 七、cron模块 八、yum_repository模块 九、yum模块 十、service模块 十一、script模块 十二、command与shell模块 三、playbook 一、YAML格式 二、Playbook常见语法 三、实例 四、roles介绍 一、roles的目录结构 二、roles实现lamp (三)、拓展安装discuz 总结 前言 公司的服务器越来越多, 维护一些简单的事情都会变得很繁琐。用shell脚本来管理少量服务器效率还行, 服务器多了之后, shell脚本无法实现高效率运维。这种情况下我们需要引入自动化运维工具, 对多台服务器实现高效运维。 一、概述 ansible是一种由Python开发的自动化运维工具集合了众多运维工具puppet、cfengine、chef、func、fabric的优点实现了批量系统配置、批量程序部署、批量运行命令等功能。 架构图 特点 部署简单 默认使用ssh进行管理基于python里的paramiko模块开发 管理端和被管理端不需要启动服务 配置简单功能强大扩展性强 能过playbook(剧本)进行多个任务的编排 常见的开源自动化运维工具比较 puppet(拓展) 基于ruby语言成熟稳定。适合于大型架构相对于ansible和saltstack会复杂些。 saltstack(拓展) 基于python语言。相对简单大并发能力比ansible要好, 需要维护被管理端的服务。如果服务断开,连接就会出问题。 ansible 基于python语言。简单快捷被管理端不需要启服务。直接走ssh协议,需要验证所以机器多的话速度会较慢。 二、ansible环境搭建 一台管理 192.168.238.129hd1 两台被管理 192.168.238.130hd2 192.168.238.131hd3 防火墙设置、宽容模式selinux 、NAT模式 所有主机都要配置主机名和 hosts文件 192.168.238.129 yum install -y epel-release yum install -y ansible 设置免密登录 若不免密操作在后面操作agent时都要加-k参数传密码;或者在主机清单里传密码。 ssh-keygen ssh-copy-id hd2 ssh-copy-id hd3 vim /etc/ansible/hosts 若不进行免密会失败 免密后进行ping通测试绿色为成功红色为失败 主机清单功能 因为未给自己免密所以129会失败 三、ansible模块 ansible是基于模块工作的本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块ansible只是提供一种框架。 ansible支持的模块非常的多我们并不需要把每个模块都记住而只需要熟悉一些常见的模块其它的模块在需要用到时再查询即可。 ​官网模块文档地址:Ansible Documentation 一、hostname模块 hostname模块用于修改主机名注意: 它不能修改/etc/hosts文件)  基本格式为: ansible 操作的机器名或组名 -m 模块名 -a 参数1值1 参数2值2 argment 例修改hd3的hostname 二、file模块 file模块用于对文件相关的操作(创建, 删除, 软硬链接等) stat模块类似linux的stat命令用于获取文件的状态信息 。了解 创建一个目录 ansible my -m file -a path/test statedirectory 创建一个文件 注意my组的验证文章中多数只截取了一台机器 ansible my -m file -a path/test/1.txt statetouch 递归修改owner,group,mode ansible 192.168.238.130 -m file -a path/root/OK recurseyes ownerbin groupbin mode1777 创建文件并指定owner,group,mode等 ansible my -m file -a path/test/1.txt statefile ownerbin groupdaemon mode1777 也可以指定其中一项进行创建修改 删除文件 删除目录 absent缺席的 会连同目录里的所有文件删除文件值删除对应文件 ansible my -m file -a path/test/1.txt stateabsent 创建软链接文件 ansible my -m file -a src/etc/fstab path/opt/fstab statelink 创建硬链接文件 ansible my -m file -a src/etc/fstab path/opt/fstab2 statehard 三、copy模块 copy模块用于对文件的远程拷贝操作如把本地的文件拷贝到远程的机器上) echo master OK ansible my -m copy -a src/root/OK dest/opt/word content参数 使用content参数直接往远程文件里写内容会覆盖原内容 注意:ansible中-a后面的参数里也有引号时记得要单引双引交叉使用如果都为双引会出现问题。 ansible my -m copy -a contenthello\n dest/opt/word force参数 使用force参数控制是否强制覆盖 如果目标文件已经存在则不覆盖 ansible my -m copy -a src/root/OK dest/opt/word forceno如果目标文件已经存在则会强制覆盖 ansible my -m copy -a src/root/OK dest/opt/word forceyes backup参数 使用backup参数控制是否备份文件 backupyes表示如果拷贝的文件内容与原内容不一样则会备份一份 my的机器上会将/opt/word备份一份备份文件命名加上时间再远程拷贝新的文件为/opt/word ansible my -m copy -a src/root/OK dest/opt/word backupyes ownerdaemon groupdaemon mode1777 /符号 copy模块拷贝时要注意拷贝目录后面是否带/符号 /etc/yum.repos.d后面不带/符号则表示把/etc/yum.repos.d整个目录拷贝到/tmp/目录下 ansible my -m copy -a src/etc/yum.repos.d dest/mnt//etc/yum.repos.d/后面带/符号则表示把/etc/yum.repos.d/目录里的所有文件拷贝到/tmp/目录下 ansible my -m copy -a src/etc/yum.repos.d/ destmnt/ 四、fetch模块 fetch模块与copy模块类似但作用相反。用于把远程机器的文件拷贝到本地。 注意: fetch模块不能从远程拷贝目录到本地 创建同名文件 五、user模块 user模块用于管理用户账号和用户属性。 创建aaa用户,默认为普通用户,创建家目录 ansible 192.168.238.130 -m user -a nameaaa statepresent 创建bbb系统用户,并且登录shell环境为/sbin/nologin ansible 192.168.238.130 -m user -a namebbb statepresent systemyes shell/sbin/nologin 创建ccc用户, 使用uid参数指定uid, 使用password参数传密码 密码要用双引号引起来单引号的话验证时会密码不正确 echo 123123 | openssl passwd -1 -stdin ansible 192.168.238.130 -m user -a nameccc uid2000 statepresent password$1$TyI.ymu/$bDnWZc.re9V/37HAZAgrf0 删除aaa用户,但家目录默认没有删除 ansible 192.168.238.130 -m user -a nameaaa stateabsent 删除bbb用户,使用removeyes参数让其删除用户的同时也删除家目录 ansible 192.168.238.130 -m user -a namebbb stateabsent removeyes 创建一个普通用户叫badboy,并产生空密码 密钥对echo ansible 192.168.238.130 -m user -a namebadboy generate_ssh_keyyes 产生空密码指的是这个并非空密码 六、group模块 group模块用于管理用户组和用户组属性。 创建组 ansible 192.168.238.130 -m group -a namelong gid3000 statepresent 删除组如果有用户的gid为此组则删除不了) ansible 192.168.238.130 -m group -a namelong stateabsent ansible 192.168.238.130 -m group -a namess stateabsent 七、cron模块 cron模块用于管理周期性时间任务。 创建一个cron任务,不指定user的话,默认就是root。 minute,hour,day,month,week不指定的话默认都为* ansible 192.168.238.130 -m cron -a nametest cron1 userroot jobtouch /mnt/mnt.txt minute*/2 也可以crontab -l查看任务 删除cron任务 ansible 192.168.238.130 -m cron -a nametest cron1 stateabsent 八、yum_repository模块 yum_repository模块用于配置yum仓库。 注意此模块只帮助配置yum仓库,但如果仓库里没有软件包安装一样会失败。所以可以手动去挂载光驱。 增加一个/etc/yum.repos.d/local.repo配置文件 。输入命令注意-a后引号 ansible 192.168.238.130 -m yum_repository -a namelocal descriptionlocalyum baseurlfile:///mnt/ enabledyes gpgcheckno 删除/etc/yum.repos.d/local.repo配置文件 ansible 192.168.238.130 -m yum_repository -a namelocal stateabsent 九、yum模块 yum模块用于使用yum命令来实现软件包的安装与卸载。 使用yum安装一个软件前提:被安装的机器上yum配置都已经OK ansible 192.168.238.130 -m yum -a namedhcp statepresent 使用yum安装l软件,statelatest表示安装最新版本 ansible 192.168.238.130 -m yum -a namedhcp statelatest 使用yum卸载一个软件 ansible 192.168.238.130 -m yum -a namedhcp stateabsent 十、service模块 service模块用于控制服务的启动,关闭,开机自启动等。 启动vsftpd服务并设为开机自动启动 ansible 192.168.238.130 -m yum -a namevsftpd statepresent ansible 192.168.238.130 -m service -a namevsftpd statestarted enabledon 关闭vsftpd服务并设为开机不自动启动 ansible 192.168.238.130 -m service -a namevsftpd statestoppd enabledfales 十一、script模块 script模块用于在远程机器上执行本地脚本。不用给权限 vim /root/test.sh ansible 192.168.238.130 -m script -a /root/test.sh 十二、command与shell模块 两个模块都是用于执行linux命令的,这对于命令熟悉的工程师来说用起来非常high。 shell模块与command模块差不多command模块不能执行一些类似$HOME,,,|等符号但shell可以) 注意: shell模块并不是百分之百任何命令都可以,比如vim或ll别名就不可以。不建议大家去记忆哪些命令不可以大家只要养成任何在生产环境里的命令都要先在测试环境里测试一下的习惯就好。 查看my组IP ansible my -m command -a ifconfig ens33 对比于shell ansible my -m command -a ifconfig ens33 |grep netmask ansible my -m shell -a ifconfig ens33 |grep netmask 三、playbook playbook(剧本): 是ansible用于配置,部署,和管理被控节点的剧本。用于ansible操作的编排。 使用的格式为yaml格式。saltstack,elk,docker,docker-compose,kubernetes等也都会用到yaml格式) 一、YAML格式 注意: 写这种文件不要使用tab键都使用空格。 以.yaml或.yml结尾 文件的第一行以 ---开始表明YMAL文件的开始(可选的) 以#号开头为注释 列表中的所有成员都开始于相同的缩进级别, 并且使用一个 - 作为开头(一个横杠和一个空格) 一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格) 二、Playbook常见语法 hosts用于指定要执行任务的主机其可以是一个或多个由冒号分隔主机组remote_user用于指定远程主机上的执行任务的用户tasks任务列表, 按顺序执行任务如果一个host执行task失败, 这个tasks会回滚, 修正playbook 中的错误, 然后重新执行即可handlers类似task但需要使用notify通知调用不管有多少个通知者进行了notify等到play中的所有task执行完成之后handlers也只会被执行一次handlers最佳的应用场景是用来重启服务,或者触发系统重启操作.除此以外很少用到了variables变量 定义变量可以被多次方便调用 三、实例 playbook编排my组安装httpd mkdir /root/palybook vim /root/palybook/test.yml 可以中文最好注释以免造成异常传输的文件要确保主机有不然会失败 执行写好的palybook ansible-playbook /root/playbook/test.yml vim /etc/httpd/conf/httpd.conf 修改配置文件端口为443 再次执行palybook ansible-playbook /root/playbook/test.yml playbook编排多个hosts任务 vim /etc/httpd/conf/host.conf ansible-playbook /root/playbook/host.yml 书写错误 my组用变量 vim /etc/httpd/conf/host.conf ansible-playbook /root/playbook/host.yml 四、roles介绍 roles(角色): 就是通过分别将variables, tasks及handlers等放置于单独的目录中,并可以便捷地调用它们的一种机制。 假设我们要写一个playbook来安装管理lamp环境那么这个playbook就会写很长。所以我们希望把这个很大的文件分成多个功能拆分, 分成apache管理,php管理,mysql管理然后在需要使用的时候直接调用就可以了以免重复写。就类似编程里的模块化的概念以达到代码复用的效果。 一、roles的目录结构 注意: 在每个角色的目录中分别创建files, tasks,handlers,templates,vars和meta目录用不到的目录可以创建为空目录.。 files用来存放由copy模块或script模块调用的文件tasks至少有一个main.yml文件定义各taskshandlers有一个main.yml文件定义各handlerstemplates用来存放jinjia2模板vars有一个main.yml文件定义变量meta有一个main.yml文件定义此角色的特殊设定及其依赖关系 二、roles实现lamp 创建目录及文件,并确认目录结构 mkdir -p {httpd,mysql,php}/{files,tasks,handlers,templates,vars,meta} touch {httpd,mysql,php}/{tasks,handlers,vars,meta}/main.yml 准备httpd服务器的主页文件,php测试页和配置文件等 echo hello /etc/ansible/roles/httpd/files/index.html echo -e ?php\n\tphpinfo();\n? /etc/ansible/roles/httpd/files/test.php yum install -y httpd cp /etc/httpd/conf/httpd.conf /etc/ansible/roles/httpd/files/ 编写httpd角色的main.yml文件 vim /etc/ansible/roles/httpd/tasks/main.yml 编写httpd角色里的handler vim /etc/ansible/roles/httpd/handler/main.yml 编写php角色的main.yml文件 vim /etc/ansible/roles/php/tasks/main.yml 编写mysql角色的main.yml文件 vim /etc/ansible/roles/mysql/tasks/main.yml 编写lamp的playbook文件调用前面定义好的三个角色 创建个playbook/lamp.yaml文件位置随意 vim /root/playbook/lamp.yaml 注意要与前面创建的名称一样 执行lamp的playbook文件 ansible-playbook /root/playbook/lamp.yml (三)、拓展安装discuz 在此基础上安装discuz discuz包放在/roles/httpd/files中 修改httpd角色的main.yml文件进行添加 vim /etc/ansible/roles/httpd/tasks/main.yml 修改mysql角色的main.yml文件 vim /etc/ansible/roles/mysql/tasks/main.yml 编写mysql的建库脚本 vim /etc/ansible/roles/mysql/files/create.sh 执行lamp的playbook文件 后续用mysql创建的授权用户和数据库即可。 总结 今天内容相当于可以舒缓下大脑了没有zabbix那么繁琐的的流程。与基础命令的使用相似只是在基础稍微扩展模版较多熟记常用的就好要理解含义再操作更有助于背记。playbook为整体roles为进行分类显得比较有序报错可找到对应的地方进行处理。
http://www.hkea.cn/news/14557342/

相关文章:

  • 福建住房和城乡建设部网站首页网站备案流程慢
  • 中国旅游预订网站的建设始于哪一年纯静态网站 维护
  • 软件公司网站网店设计是什么
  • 网站改版换域名制作详情页用什么软件
  • 通过网站赚钱杭州网站设计手机
  • 哪个网站做推广效果好301wordpress
  • 自媒体素材视频网站模板建站自适应
  • 鄞州seo整站优化服务免费简历制作网站推荐
  • 本地网站做淘宝客网站获取访问者qq号码
  • 郑州做网站价格望野亭
  • 江宁区建设工程局网站郑州网站权重
  • 网站如何连接微信支付宝吗大庆门户网站
  • 程序员做一个网站多少钱徐州建设网站的公司
  • 罗湖网站-建设深圳信科网站上关键词的推广怎么做
  • 网站备案需要当面核验哪些信息网页制作三合一第二版
  • 成都手机端建站模板新品发布会海报
  • 建设网站书籍pdf下载网站外包 博客
  • 网站建设多久西宁建设网站
  • 网络营销实验网站建设心得西安优惠电商平台网站
  • 做的较好的拍卖网站网站建设系统总体结构功能图
  • 新浪博客网站游戏怎么制作
  • 网站分成几种类型centos 7.2 wordpress
  • 服务器不支持做网站是什么意思python基础教程编程题
  • 可以做兼职的网站有哪些工作室搭建wordpress需要php环境吗
  • 官方网站数据如何做脚注云网站建设 优帮云
  • 天津网站开发培训wordpress logo 修改
  • 福田网站建设的工具网站建设找盛誉网络
  • 杨浦网站建设丹东建设安全监督网站
  • 开发公司房屋维修办法网站建设丶seo优化
  • 国企网站的建设如何做外国网站销售