96.你是老板你会怎么选择员工?
人品、态度、能力、价值
===============================
人品是根本
态度是原则
能力是基础
价值是砝码:
===============================
给老板赚100钱,你就赚50钱,老板从中赚10,剩下30公司成本。
企业利润:传统企业3-10%,教育10-20%
最大价值:精力有限、个人创造价值有限,薪资有限。
价值最大化:
为公司省钱:运维部定的目标,给公司省150万。相当于公司卖1500产品。
省钱不能影响效果、效率,花钱提高效率也可以,合理的花钱。
把公司当成自己的:
作为运维人员怎么为老板赚钱?
a.买设备、买带宽、云服务、花钱
省了5万,创造了50万流水。
传统企业3-10%,10%
要有正确的价值观,作为人何为正确?
b.CDN网站加速,网站图片被盗链。
几个小时27T流量,500M的带宽,1G-2G
损失10几万一个月。每个月省100多万流水。
c.运维自动化(devops,aiops)
少数人完成以前多数人完成的任务。节省人力成本、节省房租、管理成本
10人完全30人左右的任务。
d.让别人为你打工,为你创造价值。
打工概念:谁为谁创造价值,谁就为谁打工。
我去公司工作:谁在为谁打工?
普通人认为:是在给老板打工。
老男孩认为:老板再给我打工。
所有员工给我打工,我就是老板。
开发给运维打工:
人肉运维(1万-2万)---自动化(使用自动5000工资)---平台化(5000元工资)---
开发自动化(2-3万)          开发平台的(2-4万)
                  可视化运维(简单化、表现价值)---智能化(人也不要了)
                  开发可视化(2-5万)              开发智能化的产品(机器人)
SSH批量管理项目如何一键一秒钟完成:一秒完成。
1.ssh-keygen非交互式创建秘钥对:
具体命令:ssh-keygen -f ~/.ssh/id_rsa  -P '' -q
参数讲解:
ssh-keygen:密钥对创建工具
[-P old_passphrase]  密码
[-f output_keyfile]  输出的秘钥文件
[-q]       不输出信息
[-t dsa ]  指定秘钥类型。
2.ssh-copy-id不需要提示yes/no分发秘钥
具体命令:ssh-copy-id -f -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no 172.16.1.8
参数讲解:
ssh-copy-id  -f   -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root172.16.1.8
ssh-copy-id [-f] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname
说明:
-f: force mode 强制
[-i [identity_file]] 指定秘钥文件
[[-o <ssh -o options>] ...] 指定ssh参数选项。
3.sshpass工具:指定密码非人工交互分发秘钥
sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 172.16.1.7
[root@web02 ~]# sshpass -help
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 172.16.1.7
sshpass [-f|-d|-p|-e] [-hV] command parameters
参数讲解:
-p password   Provide password as argument (security unwise)    #指定用户密码操作
4.一键配置实践
把web02作为分发服务器:
web02(8)-->m01(61)
web02(8)-->web01(7)
ssh-keygen -f ~/.ssh/id_rsa  -P '' -q
ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 172.16.1.7
sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 172.16.1.7
!/bin/bash
yum install sshpass -y
ssh-keygen -f ~/.ssh/id_rsa  -P '' -q
for ip in 7 61
do
sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 172.16.1.$ip
done
test
ssh 172.16.1.7 "ifconfig eth0"
ssh 172.16.1.61 "ifconfig eth0"
老男孩Linux58期-ansible自动化管理实践
0.运维发展历史
开发给运维打工:
人肉运维(1万-2万)---自动化(使用自动5000工资)--->平台化(5000元工资)---
开发自动化(2-3万)          开发平台的(2-4万)(Python/Shell)
--->可视化运维(简单化、表现价值)----->智能化(人也不要了)(aiops)
开发可视化(2-5万)(Python/Shell)    开发智能化的产品(机器人)(大数据+人工智能) 机器学习、深度学习。
834万,本科400万
1.ansible介绍
ssh秘钥认证+脚本批量管理,特点:简单、实用,
但是看起来比较LOW,需要人工写脚本,类似实时复制的inotify工具。
2013以前这种方式很普遍。
MySQL高可用 MHA集群,要求所有机器互相秘钥认证。
大数据集群也需要。
2.批量管理工具历史
SSH+脚本 CFEngine、Puppet、saltstack               、ansible
08年以前 07-08年   10-13年  14-17(python开发)      16-(python开发)
sina网
3.为什么用ansible?
简单、方便、容易学习、功能同样强大。
ansible有配置文件,可以多线程直接实现。不需要写脚本,类似实时复制的sersync。
4.什么是ansible?
Ansible是一个用来远程管理服务器的工具软件。
Ansible是一个用来批量部署远程主机上服务的工具。这里“远程主机(Remote Host)”是指任
何可以通过SSH登录的主机,所以它既可以是远程虚拟机或物理机,也可以是本地主机。
Ansible通过SSH协议实现管理节点与远程节点之间的通信。理论上来说,只要能通过SSH登录到
远程主机来完成的操作,都可以通过Ansible实现批量自动化操作。
涉及管理操作:复制文件、安装服务、服务启动停止管理、配置管理等等。
5.为什么要用批量管理工具运维?
提高效率,百度几万台服务器,阿里几十万台服务器。
如何省钱?
SSD+SATA 热点存储 15 15 7
6.Ansible特点
Ansible基于Python语言实现,由Paramiko和PyYAML两个关键模块构建。
Shell、Python是Linux运维学员必会的两门语言。
1)安装部署过程特别简单,学习曲线很平坦。
2)不需要单独安装客户端,只是利用现有的SSHD服务(协议)即可。
3)不需要服务端(no servers)。
4)ansible playbook,采用yaml配置,提前编排自动化任务。
5)ansible功能模块较多,对于自动化的场景支持丰富。
7.Ansible架构介绍(见图说明)
1、连接插件connectior plugins用于连接主机 用来连接被管理端
2、核心模块 core modules 连接主机实现操作, 它依赖于具体的模块来做具体的事情
3、自定义模块 custom modules,根据自己的需求编写具体的模块
4、插件 plugins,完成模块功能的补充
5、剧本 playbooks,ansible的配置文件,将多个任务定义在剧本中,由ansible自动执行
6、主机清单 inventor,定义ansible需要操作主机的范围
最重要的一点是 ansible是模块化的 它所有的操作都依赖于模块
(懂Python可以二次开发)
超过13K:
54期郑赫杨 15K 18K 20K
1、自我要求特别高(AQ特别高)。
2、学习特别努力(周六日自习)
3、媳妇硕士,北京市公务员。
4、入学1个月左右 单独学了周末MySQL班,好几个一起学的。
5、中专 99年 7个offer,中下等学生。
建议:期中架构以后学一门周末课程
网络安全课程、python自动化课程、周末MySQL班、GO语言
8.ansible实践环境准备
61(m01)====>31(nfs01)
61(m01) ====>41(backup)
9.安装ansible
m01管理机:
yum install epel-release -y
yum install ansible -y
如果有libselinux-python就不执行下面的命令了。
rpm -qa |grep libselinux-python 查看
yum install libselinux-python -y
其他所有机器:
rpm -qa |grep libselinux-python
yum install libselinux-python -y
10.主机列表配置
ssh列表实现方法:
for n  in 7 8
do
echo 172.16.1.$n
done
/etc/ansible/hosts主机资产清单文件,用于定义被管理主机的认证信息,
例如ssh登录用户名、密码以及key相关信息。如何配置Inventory文件
1.主机支持主机名通配以及正则表达式,例如web[1:3].oldboy.com代表三台主机
2.主机支持基于非标准的ssh端口,例如web1.oldboyedu.com:6666
3.主机支持指定变量,可对个别主机的特殊配置,如登陆用户\密码
4.主机组支持指定变量[group_name:vars],同时支持嵌套组[game:children]
实践:
cp /etc/ansible/hosts{,.ori}
cat >/etc/ansible/hosts<<EOF
[oldboy]
172.16.1.31
172.16.1.41
[oldgirl]
172.16.1.31
172.16.1.41
172.16.1.51
EOF
cat /etc/ansible/hosts
/etc/ansible/ansible.cfg #ansible的配置文件
11.小试牛刀
直接执行如下命令或报错
ansible oldboy -m command -a "free -m"
基于SSH秘钥认证的前提下:
如果没有做SSH秘钥认证,可以把用户名密码写到
/etc/ansible/hosts
[oldboy_pass]
172.16.1.7 ansible_ssh_user=root ansible_ssh_pass=123456
172.16.1.8 ansible_ssh_user=root ansible_ssh_pass=123456
ansible oldboy -m command -a "free -m" 要想成功,先解决yes/no的问题。
1、ssh连接一遍。
2、ssh -o 参数
上述命令就是sshpass的封装