课堂笔记(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模块查看和帮助

查找模块

ansible-doc -l          #模块就Linux命令了。

查看某个模块的具体参数帮助

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

8、ansible模块

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模块

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

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

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

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

2.script模块

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

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

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

3.copy模块

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

   dest — 推送数据的目标路径

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

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

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

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

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

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

4.yum安装模块

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

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

    installed,present   ---安装软件包

    removed,absent      ---移除软件包

    latest               ---安装最新软件包

5.file模块

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

    recurse — 递归授权

    state —

    directory — 在远端创建目录

    touch — 在远端创建文件

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

    absent — 表示删除文件或目录

    mode — 设置文件或目录权限

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

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

6.systemd模块

   name  定义要启动服务的名称

   state  指定服务状态

   started   启动服务

   stopped   停止服务

   restarted   重启服务

    reloaded   平滑重启

7.crond模块

   minute 分

    hour 时

    day 日

   month 月

   weekday 周

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

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

    user  新建任务计划的用户

8.group模块

    name — 指定创建的组名

    gid — 指定组的gid

    state

    absent — 移除远端主机的组

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

    user模块

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

推荐阅读更多精彩内容

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