当前位置: 首页 > Linux

Linux批处理服务

时间:2023-04-06 03:34:07 Linux

批量管理模式串行并行Ansible批量管理服务概述1.基于python语言开发2.基于ssh实现远程管理Ansible批量管理服务意义1.提高工作效率2.提高准确性3.降低维护成本4.减少重复性工作工作Ansible批管理服务功能1.实现批系统运行配置2.实现批软件服务部署3.实现批文件数据分发4.实现批系统信息采集Ansible批管理服务特点管理端无需启动服务进程,即ansible是以非deamon(无服务器)形式提供服务的管理端不需要编写配置文件(/etc/ansible/ansible.cfg)受控端不需要安装软件程序managed端的selinux没有关闭----影响selinux软件management需要调整其配置(libselinux-Python:ansible软件也可以在selinux开启的情况下启动)。被控端不需要启动额外的服务(无客户端)。管理端基于模块化运行(moudlerun)使用脚本编写并实现自动化(playbook)ansible批量管理服务部署PS:ansible不需要作为守护进程启动提供服务1.在服务器上安装部署软件sidea,yuminstall-yansiable----需要依赖epelsourceb,rpm-qlansible|egrep-v"^/usr/(share|lib)"#排除文件2.不需要配置文件,hostlist文件需要写入/etc/ansible#/etc/ansible/ansible.cfg#ansible服务配置文件/etc/ansible/hosts#Hostlist文件/etc/ansible/roles#角色目录3、vim/etc/asible/hosts#Attention;不要丢失asible,否则会出问题;配置的主机必须存在,否则无法分发公钥172.16.1.31192.16.1.414,测试所需的管理主机asibleall-a"hostname"ansible服务架构信息1、列表配置2、软件模块信息3、密钥基于链接主机getenforce客户端执行时判断selinux是否关闭4.宿主机需要关闭selinux5。软件脚本函数主机列表配置方法:1.方法一:定义一个主机组[atlanta]host1host22.方法二.定义主机配置信息[atlanta]host1http_port=80maxRequestsPerChild=808host2http_port=303maxRequestsPerChild=909[demo]172.16.1.31ansible_port=52113ansible_user=demoansible_ssh_pass=1234563.方法3.子组配置方法[usa:children]定义一个主机组southeastsoutheastsoutheastnorthwest组中的细分分组信息[demoall:children]demodbdemoweb[demodb]172.1.1.1[demoweb]172.2.2.24.方法4.定义变量配置列表Ansible批量管理服务应用-模块应用https://docs.ansible.comansible-doc-l#commandmanualansible-doc-sfetch#具体模块简要信息模块命令格式:ansible主机名/主机组名/主机地址信息/all-m(指定应用模块)模块名-a(指定动作)“执行的动作”ansible127.0.0.1-mcommand-a"hostname"ansible127.0.0.1-mcommand-a"chdir=/tmptouchdemo.txt"#执行命令时判断ansible127.0.0.1-mcommand-a"creates=/tmptouchdemo.txt"#判断执行命令前,如果存在,则不创建ansible127.0.0.1-mcommand-a"removes=/tmptouchdemo.txt"#如果存在,删除公共模块1.commandcomman-执行命令远程节点#Execute操作在远程主机上。使用该模块时,必须在-a参数后加上合法的linux命令2.shell在节点中执行命令#Executeoperationsonnodes,universalmoduleansible192.1.11.1-mshell-a"echo123>/tmp/test.txt》使用shell模块执行脚本步骤:①在服务器端编写脚本②发送脚本到远程终端③添加脚本执行权限scp-rpyum.sh192.1.1.1:/server/scripts#远程传输脚本3,script运行本地srcipt,a,写脚本b,运行ansible命令,执行脚本文件类型模块:copy-复制文件到远程位置#批量分发数据信息基本用法:ansible192.1.1.1-mcopy-a"src=/etc/hostsdest=/etc/hosts_bak"补充说明:Ansible输出颜色说明1.绿色:查看主机信息/不更改主机信息2.黄色:更改主机信息修改3、红色:命令执行错误4.紫色:警告信息5.蓝色:显示ansible执行过程扩展用法:a.传输文件时修改文件的owner和group信息ansible192.1.1.1-mcopy-a"src=/etc/ansible/file/rsync/rsync.passworddest=/etc/owner=demogroup=demo"b.修改权限信息ansible192.1.1.1-mcopy-a"src=/etc/ansible/file/rsync/rsync.passworddest=/etc/model=1777"c如果源文件存在则备份ansible192.1.1.1-mcopy-a"src=/etc/ansible/file/rsync/rsync.passworddest=/etc/backup=yes"d.远程主机添加一个不存在的文件ansible192.1.1.1-mcopy-a"content='demo123'dest=/etc/rsync.password"#Onlyaddsomesimplecontentfile-setsattributesoffile#设置文件属性基本用法:ansible192.1.1.1-mfile-a"dest=/etc/hostsowner=demogroup=demomodel=666"扩展用法:1.使用模块创建数据信息(文件、目录、链接文件)状态参数=absent---不存在file=directory---createdirectoryinformation=file----检查创建的信息是否存在,绿色存在,红色不存在=hard----创建硬链接file=link----创建软链接文件=touch----创建文件ansible192.1.1.1-mfile-a"dest=/etc/hosts.txtstate=directory"2.使用模块删除数据ansible192.1.1.1-mfile-a"dest=/etc/hosts.txtstate=absent"yum模块描述:ansible172.1.1.1-myum-a"name=iotopstate=installed"服务模块描述:管理服务器a的运行状态,停止b,启动c,restartname:管理服务器名称state:指定服务状态started:restarted:restartstopped:stopenable:开机是否自动启动ansible172.1.1.1-mservice-a"name=nfsstate=startedenable=yes"cron模块说明:多次批量设置crontab-e*****格式分时日月周ansible172.1.1.1-mcron-a"minute=0hours=2/job='/usr/sbin/ntpdatentp1.aliyun.com>/dev/null2>&1'"扩展用法:1.定时任务描述信息ansible172.1.1.1-mcron-a"name='timesync'minute=0hours=2/job='/usr/sbin/ntpdatentp1.aliyun.com>/dev/null2>&1'"2.删除定时任务(仅限ansible设置的定时任务)ansible172.1.1.1-mcron-a"name='timesync'state=absent"3.批量注释定时任务(只能是ansible自己设置的定时任务)ansible172.1.1.1-mcron-a"name='timesync'disabled=yesjob='/usr/sbin/ntpdatentp1.aliyun.com>/dev/null2>&1'"挂载模块:批量挂载操作src:待挂载的存储设备或文件信息路径;指定目标挂载点目录fstype:指定文件系统类型statepresent/mounted挂载时---mountpresent:不实现立即挂载,修改fstab文件,实现开机自启动mounted:立即挂载,并修改fstababsent/unmounted---uninstallabsent:立即卸载,禁止自动开机,删除fstab文件unmounted:立即卸载,不删除fstabansible-musermodule:实现批量创建用户基本使用:ansible172.1.1.1-muser-a"name=testuser"扩展用法:1.ansible172.1.1.1-muser-a"name=testuser1uid=6666"#指定用户uid信息2.ansible172.1.1.1-muser-a"name=testuser1group=testuser"ansible172.1.1.1-muser-a"name=testuser1groups=testuser"3.ansible172.1.1.1-muser-a"name=rsynccreate_home=noshell=/sbin/nologin"#创建虚拟用户4,ansible172.1.1.1-muser-a"name=rsync1"#ansible需要设置密码在明文转换为密文脚本功能:一键完成任务结构:a、hosts——主机b、tasks——任务规范:pyyamla、合理缩进#在ansible中一定不能使用tabs进行缩进b、使用colons#冒号后面要有空格,冒号结尾或者冒号出现在注释中,不需要空格hosts:172.1.1.1tasks:c,dashapplication-(list)1,自动部署rsync服务器操作:a,ansible172.1.1.1-myum-a"name=rsyncstate=installed"#下载并安装rsync软件b,ansible172.1.1.1-mcopy-a"src=/xxx/rsyncd.confdest=/etc/"#写入配置文件c,ansible172.1.1.1-muser-a"name=rsynccreate_home=noshell=/sbin/nologin"#创建虚拟用户rsyncd,ansible172.1.1.1-mfile-a"dest=/backupstate=directoryowner=rsyncgroup=rsync"#创建目录e,ansible172.1.1.1-mcopy-a"content='rsync_backup:demo123'dest=/etc/rsync.passwordmode=600"#创建密码文件f、ansible172.1。1.1米service-a"name=rsyncdstate=startedenabled=yes"#启动服务脚本case:vimrsync_server.yaml#脚本后缀名yaml,提示功能-hosts:172.1.1.1tasks:-name:01,安装rsyncyum:name=rsyncstate=installed-name:02,pushconffilecopy:src=/tmp/rsyncd.confdest=/etc/-hosts:172.1.1.2tasks:如何执行脚本?1.检查脚本ansible-playbook的语法格式--syntax-checkrsync_server.yaml2.模拟执行ansible-playbook-Crsync_server.yaml3.直接执行脚本ansible-playbookrsync_server.yamlansible的升级,其容错能力也在不断提升。无法识别某些符号信息:“<,>,|,;,&”无法管理远程主机问题分析1.管理终端没有下发主机的公钥2.被管理的ssh服务有问题terminal3.被管端进程出现僵尸状态/usr/sbin/sshd-D#负责建立远程链接sshd:root@pts/0#维护远程连接(windows--linux)sshd:root@notty#Maintainingaremoteconnection(ansible---Managedend)tobecontinue(335)...