网站升级建设费用吗,无线网络,创建wordpress主题,湖南企业seo优化首选## 1.什么是自动化批量管理重复性工作与内容: 思考如何自动化完成.
部署环境,批量查看信息,批量检查:自动化
一般步骤:1.如何手动实现2.如何自动化管理工具#xff0c;批量实现3.注意事项#xff1a;想要自动化一定要先标准化(所有环境#xff0c;软件#xff0c;目录一致)…## 1.什么是自动化批量管理重复性工作与内容: 思考如何自动化完成.
部署环境,批量查看信息,批量检查:自动化
一般步骤:1.如何手动实现2.如何自动化管理工具批量实现3.注意事项想要自动化一定要先标准化(所有环境软件目录一致)4.注意事项尽量进行分组(比如所有web服务器是1组)2.自动化工具选择
自动化批量管理工具Ansible基于python语言编写使用极其简单不需要客户端Saltstack基于python语言编写需要安装客户端TereForm批量管理平台批量创建阿里云服务器批量创建aws服务器Fabricpython使用它Chef了解即可puppet古老一些的批量管理工具…
3.Ansible架构 4.Ansible极速使用指南
4.1 环境准备
ansible环境ansible管理端m01,10.0.0.210被管理机器web01 10.0.0.7被管理机器backup 10.0.0.41被管理机器nfs01 10.0.0.31被管理机器db01 10.0.0.51
sh /server/scripts/ssh_check.sh hostname4.2 ansible部署
m01
yum install -y ansible
#epel源中的软件包4.3 初步配置主机清单(inventory)
rootm01 /etc/ansible]# cat hosts
[hbinz]
172.16.1.7
172.16.1.31
172.16.1.41
172.16.1.514.4与ansible的第一次接触
ansible hbinz -m ping
#第一次会提示yes/no4.5 小结
1.密钥认证
2.环境准备部署ansible
3.修改ansible 主机清单
4.测试ansible hbinz -m pingansible命令格式ansible主机分组-m指定模块ansible主机分组-m指定模块-a 指定模块中的选项moduleaction
5.ansible配置文件
ansible.cfg #ansible配置文件
#71:host_key_checking False 主机校验关掉
hosts #ansible默认的主机清单 6.ansible主机清单
6.1 基本格式
[rootm01 /etc/ansible]# cat hosts
[hbinz] #[组的名字]
172.16.1.7
172.16.1.31
172.16.1.41
172.16.1.51[web]
172.16.1.7
[db]
172.16.1.51
[nfs]
172.16.1.31
[backup]
172.16.1.416.2指定用户名密码端口
主机清单中指定信息连接的ssh端口ansible_ssh_root22连接的ssh端口ansible_ssh_userroot连接的ssh端口ansible_ssh_pass‘thinker’
[web]
172.16.1.7 ansible_ssh_port22 ansible_ssh_userroot ansible_ssh_pass1
[db]
172.16.1.51
[nfs]
172.16.1.31
[backup]
172.16.1.416.3 子组
我想把多个主机分组进行合并,比如把db,nfs,backup合并成一个组叫data组.[web]
172.16.1.7
[db]
172.16.1.51
[nfs]
172.16.1.31
[backup]
172.16.1.41[data:children] #data:children表示data是创建的子组,组里面包含 db,nfs,backup3个组.
db
nfs
backup6.4主机清单案例
1案例1查看与使用指定的子组 data ansible data -m command -a hostname 2案例2查看指定的组db ansible db -m command -a hostname 3案例3查看所有主机情况 ansible all -m command -a hostname 4案例4查看某一机器 ansible 172.16.1.7 -m command -a hostname
7.ansible核心模块
7.1模块概述
模块分类命令和脚本模块command模块默认的模块执行简单命令不支持特殊符号shell模块执行命令支持特殊符号script模块分发脚本并执行文件file创建目录文件软链接copy远程分发文件修改权限所有者备份服务systemd服务管理service服务管理(了解)软件包yum源yum repositoryyum命令get_url下载软件系统管理mount模块挂载cron模块定时任务用户管理group模块管理用户组user模块管理用户其他可以研究压缩解压(unarchive),rsync模块(synchronize)数据库模块(mysql_db,mysql_user)…其他ansible管理docker k8s zabbix grafana…用于调试模块ping 模块检查ansible与其他节点连通性debug模块检查/显示变量
7.2如何查询帮助
通过命令: ansible-doc -s command
查看官网:传送门
7.3ansible命令与脚本类模块
1command模块
仅支持简单命令,不支持特殊符号,管道....
⚠ 这个模块是默认模块,ansible不加上模块,默认就使用这个模块.ansible all -m command -a 命令
ansible all -a hostname #相当于省略 -m command2shell模块
与command类似shell模块支持特殊符号执行脚本...ansible all -m shell -a ip a s eth0|sed -n 3p #command不支持特殊符号ansible颜色 绿色表示正常黄色表示执行正常状态变化红色表示错误输出错误信息紫色表示警告建议
3script模块-传输脚本到被管理端并执行脚本
传输脚本
执行脚本安装ipvsadm
cat /server/scripts/yum.sh
yum install -y ipvsadm#安装
ansible db -m script -a /server/scripts/yum.sh
#检查
ansible db -m shell -a rpm -qa|grep ipvsadm
[rootm01 /etc/ansible]# ansible db -m shell -a rpm -qa|grep ipvsadm
[WARNING]: Consider using the yum, dnf or zypper module rather than running rpm. If you need to use command because yum, dnf or zypper is insufficient you can add warn: false to this command task
or set command_warningsFalse in ansible.cfg to get rid of this message.
172.16.1.51 | CHANGED | rc0
ipvsadm-1.27-8.el7.x86_644命令与脚本模块
模块含义应用command模块执行命令简单命令不含特殊符号默认的模块ansible all -a hostnameshell模块执行命令或脚本执行含有特殊符号管道反引号{}的命令运行脚本(脚本在管理端).script模块先传输脚本然后运行脚本一般用于执行脚本
7.4ansible-文件与目录管理模块
file 创建文件目录copy 远程传输文件目录类似于scp
1file模块 管理文件或目录软链接
file模块中的选项path路径(目录文件)必须要写src(source源)源文件一般用于link(创建软链接模式)用于指定源文件state(状态)(模式)statedirectory 创建目录statefile (默认)更新文件如果文件不存在也不创建statelink 创建软链接statetouch 创建文件stateabsent 删除
案例01-创建目录/hbinz/目录
ansible all -m file -a path/hbinz statedirectory案例02-创建文件/hbinz/hbinz.txt文件
ansible all -m file -a path/hbinz/hbinz.txt statetouch
ansible all -a ls -l /hbinz案例03-创建软链接 /hbinz/hbinz.txt到/tmp/hbinz.txt.soft
ansible all -m file -a src/hbinz/hbinz.txt path/tmp/hbinz.txt.soft statelinkansible all -a ls -l /tmp/hbinz.txt.soft案例04-删除文件、目录、软链接
ansible all -m file -a path/hbinz/hbinz.txt stateabsent
ansible all -m file -a path/hbinz stateabsent
ansible all -m file -a path/tmp/hbinz.txt.soft stateabsent案例05-创建文件/tmp/hbinz.txt所有者root用户组root权限755
ansible all -m file -a path/tmp/hbinz.txt ownerroot grouproot mode755 statetouch
ansible all -a ls -l /tmp/oldboy.txt2copy远程传输模块
copy模块srcsource源文件destdestination目标backupbackupyes 则会在覆盖前备份mode修改权限owner修改为指定所有者group修改为指定用户组
案例01-传输/etc/hosts文件到/etc/hosts
ansible all -m copy -a src/etc/hosts dest/etc/hosts案例02–传输/etc/hosts文件到/etc/hosts-先备份然后修改
ansible all -m copy -a src/etc/hosts dest/etc/hosts backupyes3文件传输小结
文件管理与传输含义file创建/删除 文件/目录软链接copy远程分发文件/目录,软件包压缩包…
7.5ansible-服务管理模块
就是用了systemctl 命令
启动/关闭/重启服务
开机自启动/开机不自启动1systemd
systemdname用于指定服务名称enabled控制服务的开机自启动 enabledyes /enablenostate表示服务开关重启…statestarted 开启statestopped 关闭statereloaded 重读配置文件(服务支持的情况下sshd nfs nginx)staterestarted 重启(关闭再开启)daemon-reloadyes是否重新加载对应的服务的管理配置文件(讲解了systemctl配置文件.)案例01-关闭firewalld
ansible all -m systemd -a namefirewalld enabledno statestopped
ansible all -a systemctl state firewalld案例02-开启sshd服务
ansible all -m systemd -a namesshd enabledyes statstarted
ansible all -a systemctl state sshd案例03-重启backup这台机器上面的rsync服务
ansible backup -m systemd -a namersyncd staterestarted2service
服务管理模块systemd模块service模块开机自启动enabledenabled服务名称namename服务开关重启statestate运行级别无runlevel(运行级别)重启加载systemctl配置daemon_reloadyes systemctl daemon-reload无
3服务管理模块小结
模块systemd管理linux 红帽7以上推荐使用,ubuntu…service6及一下