综合架构批量管理服务--Ansible(2)
综合架构批量管理服务–Ansible
本篇介绍部分
1) ansible批量管理服务模块说明
2) ansible批量管理服务主机清单
3) ansible批量管理服务剧本编写
4) ansible批量管理服务实战应用(rsync nfs)
上篇知识点
1) ansible服务概念介绍
a 批量管理多台主机
b 提高运维工作效率
c 降低运维工作难度
2) ansible服务特点说明
01. 管理端不需要启动服务程序(no server)
02. 管理端不需要编写配置文件(/etc/ansible/ansible.cfg)
03. 受控端不需要安装软件程序(libselinux-python)
被管理端selinux服务没有关闭 — 影响ansible软件的管理
libselinux-python让selinux开启的状态也可以使用ansible程序
04. 受控端不需要启动服务程序(no agent)
05. 服务程序管理操作模块众多(module)
06. 利用剧本编写来实现自动化(playbook)
3) ansible服务部署安装
a 安装服务软件
b 编写主机清单
c 进行管理测试
补充: 远程主机无法管理问题分析1. 管理端没有分发好主机的公钥2. 被管理端远程服务出现问题3. 被管理端进程出现僵死情况/usr/sbin/sshd -D --- 负责建立远程连接sshd: root@pts/0 --- 用于维护远程连接(windows--linux)sshd: root@notty --- 用于维护远程连接(ansible--被管理端)4) ansible服务模块应用command (默认模块) shell (万能模块)script (脚本模块)copy (批量分发文件) 管理端 ---> 多个被管理fetch (批量拉取数据) 管理端 <--- 多个被管理destsrcansible 172.16.1.31 -m fetch -a "src=/tmp/oldboy.txt dest=/tmp"file补充: ansible学习帮助手册如何查看ansible-doc -l --- 列出模块使用简介ansible-doc -s fetch --- 指定一个模块详细说明ansible-doc fetch --- 查询模块在剧本中应用方法
ansible模块说明:
yum模块
name — 指定安装软件名称
state — 指定是否安装软件
installed — 安装软件
present
latest
absent — 卸载软件
removed
ansible 172.16.1.31 -m yum -a “name=iotop state=installed”service模块: 管理服务器的运行状态 停止 开启 重启
name: — 指定管理的服务名称
state: — 指定服务状态
started 启动
restarted 重启
stopped 停止
enabled — 指定服务是否开机自启动
ansible 172.16.1.31 -m service -a “name=nfs state=started enabled=yes”cron模块: 批量设置多个主机的定时任务信息
crontab -e- 定时任务动作
分 时 日 月 周
minute: # Minute when the job should run ( 0-59, *, */2, etc )
设置分钟信息
hour: # Hour when the job should run ( 0-23, *, */2, etc )
设置小时信息
day: # Day of the month the job should run ( 1-31, *, */2, etc )
设置日期信息
month: # Month of the year the job should run ( 1-12, *, */2, etc )
设置月份信息
weekday: # Day of the week that the job should run ( 0-6 for Sunday-Saturday, *, etc )
设置周信息job 用于定义定时任务需要干的事情
基本用法:
ansible 172.16.1.31 -m cron -a “minute=0 hour=2 job=’/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1’”扩展用法:
给定时任务设置注释信息
ansible 172.16.1.31 -m cron -a “name=‘time sync’ minute=0 hour=2 job=’/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1’”如何删除指定定时任务
ansible 172.16.1.31 -m cron -a “name=‘time sync01’ state=absent”
PS: ansible可以删除的定时任务,只能是ansible设置好的定时任务如何批量注释定时任务
ansible 172.16.1.31 -m cron -a “name=‘time sync’ job=’/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1’ disabled=yes”
mount: 批量进行挂载操作
src: 需要挂载的存储设备或文件信息
path: 指定目标挂载点目录
fstype: 指定挂载时的文件系统类型
state
present/mounted — 进行挂载
present: 不会实现立即挂载,修改fstab文件,实现开机自动挂载
mounted: 会实现立即挂载, 并且会修改fstab文件,实现开机自动挂载 *****absent/unmounted --- 进行卸载absent: 会实现立即卸载, 并且会删除fstab文件信息,禁止开机自动挂载unmounted: 会实现立即卸载, 但是不会会删除fstab文件信息 *****
user模块: 实现批量创建用户
基本用法:
ansible 172.16.1.31 -m user -a “name=oldboy01”扩展用法:
指定用户uid信息
ansible 172.16.1.31 -m user -a “name=oldboy02 uid=6666”指定用户组信息
ansible 172.16.1.31 -m user -a “name=oldboy03 group=oldboy02”
ansible 172.16.1.31 -m user -a “name=oldboy04 groups=oldboy02”批量创建虚拟用户
ansible 172.16.1.31 -m user -a “name=rsync create_home=no shell=/sbin/nologin”给指定用户创建密码
PS: 利用ansible程序user模块设置用户密码信息,需要将密码明文信息转换为密文信息进行设置
生成密文密码信息方法:
方法一:
ansible all -i localhost, -m debug -a “msg={{ ‘密码信息123456’ | password_hash(‘sha512’, ‘oldboy’) }}”
[root@m01 tmp]# ansible all -i localhost, -m debug -a “msg={{ ‘123456’ | password_hash(‘sha512’, ‘oldboy’) }}”
localhost | SUCCESS => {
“msg”: “ 6 6 6oldboy$MVd3DevkLcimrBLdMICrBY8HF82Wtau5cI8D2w4Zs6P1cCfMTcnnyAmmJc7mQaE9zuHxk8JFTRgYMGv9uKW7j1”
}
方法二:(忽略)
mkpasswd --method=sha-512方法三:
yum install -y python-pip
pip install passlib
python -c “from passlib.hash import sha512_crypt; import getpass; print(sha512_crypt.using(rounds=5000).hash(getpass.getpass()))”
Password:
6 6 6rJJeiIerQ8p2eR82$uE2701X7vY44voF4j4tIQuUawmTNHEZhs26nKOL0z39LWyvIvZrHPM52Ivu9FgExlTFgz1VTOCSG7KhxJ9Tqk.ansible 172.16.1.31 -m user -a ‘name=oldboy08 password= 6 6 6oldboy$MVd3DevkLcimrBLdMICrBY8HF82Wtau5cI8D2w4Zs6P1cCfMTcnnyAmmJc7mQaE9zuHxk8JFTRgYMGv9uKW7j1’
- 定时任务动作
剧本的编写方法
剧本的作用: 可以一键化完成多个任务
自动化部署rsync服务:
服务端的操作
第一个历程安装软件:
ansible 172.16.1.41 -m yum -a “name=rsync state=installed”第二个历程编写文件:
ansible 172.16.1.41 -m copy -a “src=/xxx/rsyncd.conf dest=/etc/”第三个历程创建用户
ansible 172.16.1.41 -m user -a “name=rsync create_home=no shell=/sbin/nologin”第四个历程创建目录
ansible 172.16.1.41 -m file -a “dest=/backup state=directory owner=rsync group=rsync”第五个历程创建密码文件
ansible 172.16.1.41 -m copy -a “content=‘rsync_backup:oldboy123’ dest=/etc/rsync.password mode=600”第六个历程启动服务
ansible 172.16.1.41 -m service -a “name=rsyncd state=started enabled=yes”客户端的操作:
第一个历程: 创建密码文件
ansible 客户端地址 -m copy -a “content=‘rsync_backup:oldboy123’ dest=/etc/rsync.password mode=600”剧本的做成部分:
演员信息: 男一号 hosts
干的事情: 吻戏 tasks演员信息: 男二号
干的事情: 看着剧本编写规范: pyyaml – 三点要求
合理的信息缩进 两个空格表示一个缩进关系
标题一
标题二
标题三
PS: 在ansible中一定不能用tab进行缩进冒号的使用方法
hosts: 172.16.1.41
tasks:
yum: name=xx
PS: 使用冒号时后面要有空格信息
以冒号结尾,冒号信息出现在注释说明中,后面不需要加上空格短横线应用 -(列表功能)
张三
男- 打游戏
- 运动
李四
女
学习
湖南王五
男
运动
深圳
PS: 使用短横线构成列表信息,短横线后面需要有空格
开始编写剧本
mkdir /etc/ansible/ansible-playbook
vim rsync_server.ymal
说明: 剧本文件扩展名尽量写为yaml- 方便识别文件是一个剧本文件
- 文件编写时会有颜色提示
hosts: 172.16.1.41
tasks:
yum: name=rsync state=installed
copy: src=/tmp/rsyncd.conf dest=/etc/如何执行剧本:
第一个步骤: 检查剧本的语法格式
ansible-playbook --syntax-check rsync_server.yaml
第二个步骤: 模拟执行剧本
ansible-playbook -C rsync_server.yaml
第三个步骤: 直接执行剧本
ansible-playbook rsync_server.yamlhosts: 172.16.1.41
tasks:- name: 01-install rsync
yum: name=rsync state=installed - name: 02-push conf file
copy: src=/tmp/rsyncd.conf dest=/etc/
- name: 01-install rsync
- 总结
- 将常用模块进行了补充说明
fetch yum service user mount cron - 剧本的编写规范
a 空格规范
b 冒号规范
c 短横线规范(列表)
剧本的组成- hosts: xxx
tasks:- name: xxxx:xxx
yum: xxx - name
剧本的执行方式
a 检查语法
b 模拟执行
c 真正执行
- name: xxxx:xxx
- hosts: xxx
- 将常用模块进行了补充说明
思考问题:
- 如何利用剧本部署rsync服务
- 如何利用剧本部署nfs服务
综合架构批量管理服务--Ansible(2)相关推荐
- 综合架构-高可用服务
综合架构-高可用服务 高可用服务介绍说明 高可用服务工作原理 如何实现部署高可用服务 高可用keepalived服务部署流程 高可用服务企业应用 高可用服务常见异常问题 ----脑裂问题 如何实现ke ...
- linux批量管理服务,通过PSSH批量管理Linux服务器
pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的.使用是必须在各个服务器上配置好密钥认证访问. pssh 包安装 5 个实用程序: pssh 在多个主机上并行地运 ...
- 大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]
文章目录 ansible 自动化运维工具 详解 关于作者 作者介绍 一.ansible 概述 1.1 ansible 概述 1.2 是什么要使用 ansible 1.3 ansible 功能 1.4 ...
- ansible: Linux批量管理神器
我们已经知道,基于集群可实现服务器横向扩展slace out.可是,当上百台主机集合成共同为一个站点提供web页面访问的形式时,怎么管理整个集群体呢? 一些小伙伴大概听说过pxe等可实现自动安装系统. ...
- Linux 运维工作中的经典应用ansible(批量管理)Docker容器技术(环境的快速搭建)...
一 Ansible自动化运维工具 Python 在运维工作中的经典应用ansible(批量管理操作)1.安装ansible(需要bese epel 2种源) wget -O /etc/yum.repo ...
- Ansible批量管理Windows服务器,winrm配置
(一)Ansible简介 Ansible 是一款轻量级的开源的自动化运维工具,支持 linux 和 windows(只支持 client,并且部分模块),利用 Ansible 可以简单批量的配置系统, ...
- 综合架构web服务之nginx详解
文章目录 nginx 服务配置详细介绍 关于作者 前言 一.nginx web 入门简介 1.1 什么是nginx 1.2 常见的网站服务 1.3 nginx 网站服务特点 1.4 网站页面访问原理 ...
- ansible介绍、安装、远程执行命令、拷贝文件或目录、远程执行脚本、管理任务计划、安装包和管理服务、playbook、变量、循环、条件判断、handlers、安装nginx、管理配置文件
24.15 ansible介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系 ...
- 智慧城管—城市综合管理服务平台解决方案
智慧城管-城市综合管理服务平台解决方案 资料来源:https://t.zsxq.com/0azzBnjEK
最新文章
- libevent和libev的区别对比(二)
- bzoj 4711 小奇挖矿 ——“承诺”类树形dp
- Eclipse——Maven项目工程无法编译但可以运行解决方案
- AX中对Programmable section的动态控制
- 【转】智能音箱技术概览
- jquery-加入购物车动画
- 关于SQL Server对于表的一些查询
- mysql binlog备份_MySQL mysqldump + mysqlbinlog 备份和还原
- java day43【Filter:过滤器 、Listener:监听器】
- 嵌入式应该怎么去学?-熊健-专题视频课程
- 火车头采集器采集教程
- 使用 COLOR THIEF 获取图片主色,实现图片渐变遮罩,颜色填充等
- [BZOJ5109]大吉大利,晚上吃鸡!
- eclipse安装和jdk安装(windows平台)
- Hibernate 的 could not initialize proxy - the owning Session was closed问题
- 动态像素绘画——StarDust
- 检测不到声卡High Definition Audio控制器显示代码10?驱动人生教你如何解决问题
- 计算机游戏本和商务本的区别,商务本和游戏本有什么区别
- EDONG:助力中大型企业数字化转型
- Mean-Shift算法