课堂笔记(DAY 37-41)

DAY 37

SSH服务知识与批量管理项目实践

1、基础端口

873 rsync

22? ssh

25? smtp? 邮件发送服务

110 pop3 邮件接收服务

80? web? 网页服务

23? ? ?? telnet

111? ? ? rpcbind

21? ? ?? ftp

3389? ?? windows远程桌面

2、SSH批量管理

2.1ssh服务端软件

yum install openssl openssh -y

rpm -qa openssh openssl

openssh-7.4p1-16.el7.x86_64?? #<==ssh服务。

openssl-1.0.2k-16.el7.x86_64? #<==加密用的ssl。

2.2ssh服务配置优化:

####Start by oldboy#2018-04-26###

PermitEmptyPasswords no

UseDNS no

GSSAPIAuthentication no

#ListenAddress 172.16.1.7:22

####End by oldboy#2018-04-26###

2.3基础了解

2.3.1认证方式

密码认证

ssh 172.16.1.31 需要输入key和密码pass

秘钥认证

ssh-keygen交互式?? 连续回车 出来私发和公钥

非交换式ssh-keygen -f ~/.ssh/id_rsa? -P '' -q

参数讲解:

ssh-keygen:密钥对创建工具

[-P old_passphrase]? 密码

[-f output_keyfile]? 输出的秘钥文件

? ? [-q]? ? ?? 不输出信息? ? ?

[-t dsa ]? 指定秘钥类型

ssh-copy-id? #专业拷贝密钥中的公钥文件的。

-f: force mode 强制

[-i [identity_file]] 指定秘钥文件

[[-o <ssh -o options>] ...] 指定ssh参数选项。

2.3.2配置文件

/etc/ssh/ssh_config

2.4? sshpass工具:指定密码非人工交互分发秘钥

yum install -y sshpass

非分交互式分发密钥sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 172.16.1.7

2.5批量分发公钥脚本

#!/bin/bash

yum install sshpass -y &&\

#在管理机上输入

ssh-keygen? -t rsa -f ~/.ssh/id_rsa -q?? -P '' &&\

#如果创建过公钥? 可以忽略或者 y

for i in 5 6 7 8 31 41 51;do sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub 172.16.1.$i "-o StrictHostKeyChecking=no";done

DAY 38

ansible远程管理服务器的工具软件

1、基于Python语言实现,由Paramiko和PyYAML两个关键模块构建。

2、安装

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

3、配置文件

/etc/ansible/hosts

/etc/ansible/ansible.cfg 配置文件?? 74行或者374行注释掉

4、命令格式

ansible? ? oldboy? ? ? -m? ? command? ? -a? ?? "free -m"

? ? ? ? ? ? ? 模块名? ? ? ? ? ? ? ? ? ?? 参数? ? ? ? ? ? ? ? ? 执行命令

5、使用anseble命令时解决密钥的问题

一种是提前执行sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 172.16.1.7后再执行anseble

另一种是

在/etc/ansible/hosts添加:

[oldboy_pass]

172.16.1.7 ansible_ssh_user=root ansible_ssh_pass=123456?? ansible_ssh_port(端口)=

172.16.1.8 ansible_ssh_user=root ansible_ssh_pass=123456?? ansible_ssh_port(端口)=

/etc/ansible/ansible.cfg 配置文件?? 74行或者374行注释掉

6、ansible命令参数

-m MODULE_NAME, ??槊?,默认command

-a MODULE_ARGS, 模块参数

-f FORKS ? ? 并发进程数,默认5个。

-i INVENTORY(default=/etc/ansible/hosts)指定主机列表文件

7、nsible??椴榭春桶镏?/p>

查找模块

ansible-doc -l? ? ? ? ? #??榫蚅inux命令了。

查看某个??榈木咛宀问镏?/p>

ansible-doc -s command? #Linux命令参数

8、ansible???/p>

ansible-doc -s command

argv

允许用户以列表和字符串的形式提供命令。只能提供字符串或列表形式,不能提供

chdir

在运行该命令之前,请切换到此目录

[root@m01 ~]# ansible oldboy? -m command -a "pwd chdir=/etc"

creates

文件名或(从2.0开始)glob模式。如果它已经存在,这个步骤将不会运行

参数:creates=/etc? 相当于条件测试? [ -e /etc ]||pwd 和下面removes相反

[root@m01 ~]# ansible oldboy? -m command -a "pwd creates=/etc"

removes

文件名或(从2.0开始)glob模式。如果已经存在,则运行此步骤*

参数:removes=/root 相当于条件测试 [ -e /root ]&&ls /root

ansible oldboy? -m command -a "ls /root removes=/root"

stdin

将命令的stdin直接设置为指定的值。

warn

如果command_warnings在ansible中打开。cfg,如果设置为“no”,不要警告此特定行

参数:warn=False 忽略警告

[root@m01 ~]# ansible oldboy? -m command -a "chmod 000 /etc/hosts warn=False"


DAY 39

Ansible批量管理工具模块和参数深入实践

1.shell???/p>

? ? ?chdir?? 在执行命令之前,通过cd命令进入到指定目录中

? ? ?creates 定义一个文件是否存在,如果不存在,则运行相应命令;存在跳过此步骤

? ? ?注:执行的脚本必须在远程服务器上存在

? ? creates? 定义文件是否存在,如果不存在,则运行相应命令,如果存在跳过此步骤

2.script模块

? ? creates? 定义文件是否存在,如果不存在,则运行相应命令,如果存在跳过此步骤

? ? free_form(必有参数) 参数信息中可以输入任何系统命令信息,实现远程管理

? ? removes?? 定义文件是否存在,如果存在,则运行相应命令,如果不存在跳过此步骤

3.copy???/p>

? ? src — 推送数据的源文件信息

? ?dest — 推送数据的目标路径

? ?backup — 对推送传输过去的文件,进行备份

? ?content — 直接批量在被管理端文件中添加内容

? ?group — 将本地文件推送到远端,指定文件属组信息

? ? owner — 将本地文件推送到远端,指定文件属主信息

? ? mode — 将本地文件推送到远端,指定文件权限信息

? ? force — 分为force=no或yes,如果目标主机包含该文件,但内容不同,设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes

4.yum安装???/p>

? ? name? ? ---指定要安装的软件包名称

? ? state?? ---指定使用yum的方法

? ? installed,present?? ---安装软件包

? ? removed,absent? ? ? ---移除软件包

? ? latest? ? ? ? ? ? ?? ---安装最新软件包

5.file???/p>

? ? path 指定远程主机目录或文件信息

? ? recurse — 递归授权

? ? state —

? ? directory — 在远端创建目录

? ? touch — 在远端创建文件

? ? link — link或hard表示创建链接文件

? ? absent — 表示删除文件或目录

? ? mode — 设置文件或目录权限

? ? owner — 设置文件或目录属主信息

? ?group — 设置文件或目录属组信息

6.systemd模块

? ?name? 定义要启动服务的名称

? ?state? 指定服务状态

? ?started?? 启动服务

? ?stopped?? 停止服务

? ?restarted?? 重启服务

? ? reloaded?? 平滑重启

7.crond???/p>

? ?minute 分

? ? hour 时

? ? day 日

? ?month 月

? ?weekday 周

? ? job? 任何计划执行的命令,state要等于present

? ? backup? 是否备份之前的任务计划

? ? user? 新建任务计划的用户

8.group模块

? ? name — 指定创建的组名

? ? gid — 指定组的gid

? ? state

? ? absent — 移除远端主机的组

? ? present — 创建远端主机的组(默认)

? ? user???/p>

? ? uid — 指定用户的uid

? ? group — 指定用户组名称

? ? groups — 指定附加组名称

? ?password — 给用户添加密码

? ?shell — 指定用户登录shell

? ?create_home — 是否创建家目录

9.mount模块

? ? fstype 指定挂载文件类型

? ?path 指定挂载点

? ?opts 设定挂载的参数选项信息

? ?src? 要被挂载的目录设备信息(共享目录)

? ?boot? 确定是否在启动时文件系统被挂载

? ?只应用在solaris系统上

? ?(added in 2.2)

? ? ?dump? Dump(参见 fstab5)。注意如果设置为null或状态设置为present,它将停止工作,并将在随后的运行中复制条目

对solaris系统没有效果

? ? state?

如果为mounted在fstab文件中的设备将被激活挂载和适当配置

# 如果为unmounted设备将被卸载并不会改变fstab文件信息bsent和present只处理fstab,但不影响目前的挂载

DAY 40

老男孩Linux云计算运维58期Day40-Ansible批量管理剧本编写及自动化集群配置实践

1、playbook

1.1 什么是playbook?

? ? 把所有操作按照ansible编程语法,放在文件里执行就是playbook。

1.2 ansible剧本编写格式说明

? ? ansible剧本遵循PYyaml语法规则进行编写,yaml文件基本编写规则如下说明:

? ? 规则一:缩进

? ? yaml使用一个固定的缩进风格表示数据层结构关系,需要每个缩进级别由两个空格组成。切记一定不能使用tab键进行缩进。

? ? 规则二:冒号

? ? 每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)

? ? 规则三:短横线

? ? 想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分

2、 playbook替代方案

? ? playbook替代方案1:不同样

[root@m01 ~]# cat ansible.sh #判断 循环,可以脚本实现。

ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch"

ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch owner=oldboy group=oldboy mode=ugo=rwx"

ansible oldboy -m yum -a "name=nginx state=installed"

ansible oldboy -m service -a "name=crond state=started enabled=yes"

ansible oldboy -m cron -a "name='sync time' minute=00 hour=00 job='/usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'"

? ? playbook替代方案2:通用

? ? [root@m01 ~]# cat ~/set.sh

? ? touch /tmp/oldboy_file

? ? chown oldboy.oldboy /tmp/oldboy_file

? ? yum install nginx -y

? ? /etc/init.d/crond start

? ? chkconfig cornd on

? ? echo '#sync time oldboy' >>/var/spool/cron/root

? ? echo '00 00 * * *? /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spool/cron/root

? ?执行:

? ? ?ansible oldboy -m script -a "~/set.sh"

3、剧本

? ? [root@m01 /etc/ansible/yaml]# cat /etc/ansible/yaml/p1.yml

? ? - hosts: oldboy

? ? ? tasks:

? ? ? ? - name: Create a log file

? ? ? ? ? shell: echo oldboy linux. >/tmp/oldboy.log

? ? [root@m01 /etc/ansible/yaml]# cat p2.yml

? ? - hosts: oldboy

? ? ? tasks:

? ? ? ? - shell: echo oldboy linux. >/tmp/oldboy.log

3.1练习

? ? 定时任务:

ansible oldboy -m cron -a "name='sync time' minute=00 hour=00 job='/usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'"

#crond-id-001:time sync by oldboy

*/5 * * * * /usr/sbin/ntpdate ntp3.aliyun.com >/dev/null 2>&1

? 编写剧本:

[root@m01 /etc/ansible/yaml]# cat p4.yml

- hosts: oldboy

? tasks:

? ? - name: Cron time sync

? ? ? cron: name='sync time' minute=*/10 job='/usr/sbin/ntpdate ntp3.aliyun.com >/dev/null 2>&1'

DAY 41

老男孩Linux云计算运维58期Day41-HTTP与WWW服务基础介绍

1、DNS,全称Domain Name System

? ? 计算机网络诞生时候

? ? 通过IP地址访问服务器。

? ? IP地址不好记:IP地址.

? ? 1.1.1.1

? ? 发展到后来 就用hosts,所有的访问服务器的主机hosts都加上解析记录

? ? 大家都把解析放到hosts,发生问题。每个人都要改HOSTS

? ?增加网站记录,如何所有知道呢?

? ? 发明了DNS

? ? 上网配置了DNS服务器,只要输入域名地址,就会有DNS服务器告诉你IP是啥。

? ? 企业上网如何让DNS知道他的域名,企业上网购买域名,默认管理平台(默认的DNS),

? ? 解析记录记录。

? ? 自动化解析,不需要分发hosts,不需要客户端做任何配置。

? ? 个人客户端只要DNS地址就行。

? ? 企业不会自建外网DNS,选择购买域名默认DNS,大企业花钱买DNSPOD,F5智能DNS解析。

? ? 服务器端开源工具:bind、powerdns,bind比较流行。

? ? 大企业的内网使用DNS,搭建bind。

2、HTTP协议,全称HyperText Transfer Protocol,中文名为超文本传输协议

? ? HTTP的重要应用之一是WWW服务

? ? HTTP协议的WWW服务应用的默认端口为80

? ? https的默认端口为443

? ? 1、什么是HTTP请求方法

? ? 客户端请求Web服务器时,告诉服务器要执行什么具体的动作。

? ? GET 客户端请求指定资源信息,服务器返回指定资源。

? ? ? ? 浏览网页的过程都是GET方法。

? ? POST 将客户端的数据提交到服务器,例:注册用户。

? ? ? ? 上传图片、视频,都是POST方法。

? ? DELETE 请求服务器删除Request-URI所标识的资源。

? ? MOVE 请求服务器将指定的页面移至另一个网络地址。

? ? HEAD 只请求响应报文中的HTTP首部。

? ? 什么是HTTP状态码?

? ? HTTP状态码(HTTP Status Code)是用来表示Web服务器响应http请求状态的数字代码。

? ? 404 没有你要的东西

? ? 403 权限拒绝

?范例:

? ? 查看响应头

? ? [root@web01 ~]# curl -I www.baidu.com

? ? HTTP/1.1 200 OK

? ? Accept-Ranges: bytes

? ?Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform

? ?Connection: Keep-Alive

? ?Content-Length: 277

? ?Content-Type: text/html

? ? Date: Fri, 26 Apr 2019 03:48:34 GMT

? ? Etag: "575e1f60-115"

? ? Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT

? ? Pragma: no-cache

? ? Server: bfe/1.0.8.18

? ?2、HTTP报文可分为两种,

? ? 一种是从Web客户端发往Web服务器的HTTP报文,称为请求报文(RequestMessage)。

? ? 另外一种是从Web服务器发往Web客户端的报文,称为响应报文(Response Message)

? ? HTTP的请求和响应报文的格式类似。

? ? MIME类型

? ?Web服务器会把通过Web传输的每个对象都打上名为MIME 类型(MIME type) 的数据格式标签。

? ? MIME类型

? ? URL,全称Uniform Resource Location,中文翻译为统一资源定位符

? ? 网址 就是URL

? ? URI,全称Uniform Resource Identifier,中文翻译为统一资源标识符

? ? URL是URI命名机制的一个子集


?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容

  • 1.ssh-keygen非交互式创建秘钥对: 具体命令:ssh-keygen -f ~/.ssh/id_rsa ...
    1220阅读 983评论 0 0
  • 12.ansible??椴榭春桶镏?**** 查找???ansible-doc -l #??榫蚅inux命...
    一关_e438阅读 324评论 0 0
  • 1983年2月22日本我图腾黄太阳
    光明合一上帝阅读 236评论 0 0
  • 特训营每天的作业 杨总都设置了一条心得题 就是听了课自己有什么收获 刚听了韩薇老师的了 我的眼里充满了泪水 我深深...
    林筱芬阅读 107评论 0 0
  • 在操作系统中,线程可以划分优先级,优先级较高的线程得到的CPU资源较多,也就是CPU优先执行优先级较高的线程对象中...
    迷糊小生阅读 839评论 0 0