iNet

Ansible运维的必备工具

折月煮酒 提交于 2021-01-01 05:55:30
Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括: (1)、连接插件connection plugins:负责和被监控端实现通信; (2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机; (3)、各种模块核心模块、command模块、自定义模块; (4)、借助于插件完成记录日志邮件等功能; (5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。 一、系统安装 [root@centos6 ~]# cat /etc/issue CentOS release 6.5 (Final) [root@centos6 ~]# uname -r 2.6.32-431.el6.x86_64 二、软件安装 [root@centos6 ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm [root@centos6 ~]#

Windows Server 2012 DirectAccess:环境部署(四)INET服务器部署

旧城冷巷雨未停 提交于 2020-12-31 14:13:59
一台运行Windows Server 2012标准版的独立服务器,命名为INET1,作为公网 DNS 服务器、 web 服务器和 DHCP 服务,模拟公网环境,(131.107.0.1/24) 第 四 步 配置INET公网DNS服务器 1. 安装Windows Server 2012 标准版,并命名为INET1(安装过程略) 2. 配置IP,131.107.0.1/24 DNS 127.0.0.1 高级设置,DNS后缀:isp.example.com 启用文件和打印机共享 3. 安装DNS和IIS服务 选择DNS和IIS角色 默认选择,下一步 下一步 下一步 默认选择下一步 确认安装内容,安装 等待安装完成 4. 创建DNS记录 在正向查找区域新建一个名为isp.example.com的主要区域 选择主要区域 区域名称isp.example.com 允许动态更新 完成 然后在此区域中新建一个A记录,INET1.isp.example.com指定本机IP地地131.107.0.1 接下来,再新建一个名为test.com的主要区域,用来模拟我申请的公网域名 在test.com区域中新建主机A记录,edge1.test.com,IP地址指向我的内网EDGE1服务器131.107.0.2 最后,再新建一个名为msftncsi.com的主要区域, (当windows系统连接网络时

Windows Server 2012 之DirectAccess:快速部署功能

 ̄綄美尐妖づ 提交于 2020-12-31 14:13:41
在Windows Server 2012中部署DirectAccess时,有两种不同形式的部署场景:快速安装和高级配置。从较高角度来看,这两种场景的区别请参见下表: 今天我将利用第一种方式“快速安装”来部署一台远程访问服务器,并测试客户端的连接性。 利用“快速安装”部署的DirectAccess服务器,只支持Windows8客户端的连接。 在前面几篇的环境部署中,已经部署好了基本的网络环境,但在今天的环境中,EDGE1服务器只需要一个公网IP,网络拓扑结构如下图 1. 创建一台运行Windows 8 的虚拟机,命名为CLIENT1,并且加入contoso.com域(步骤略) 2. 在DC1中创建一个用户组DirectAccess Clients,并将CLIENT1添加到该组中 3. 在EDGE1服务器上安装远程访问功能 选择远程访问角色 添加所需的功能 功能选项,保持默认 下一步 远程访问角色服务,保持默认,下一步 确认安装内容后,开始安装 安装完成 4. 配置远程访问功能(DirectAccess) 打开开始向导 选择仅部署DirectAccess 网络拓扑结构选择边缘,输入远程访问服务器公用名称edge1.test.com(就是我在前面环境部署中设置好的模拟公网域名,指向的edge1服务器的公网网卡IP) 在这里,先不要急着点击完成

TCP/IP及内核参数调优

◇◆丶佛笑我妖孽 提交于 2020-12-30 21:01:04
Linux下TCP/IP及内核参数优化有多种方式,参数配置得当可以大大提高系统的性能,也可以根据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻击等等。 如下配置是写在sysctl.conf中,可使用sysctl -p生效, 相关参数仅供参考,具体数值还需要根据机器性能,应用场景等实际情况来做更细微调整。 net.core.netdev_max_backlog = 400000 #该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。 net.core.optmem_max = 10000000 #该参数指定了每个套接字所允许的最大缓冲区的大小 net.core.rmem_default = 10000000 #指定了接收套接字缓冲区大小的缺省值(以字节为单位)。 net.core.rmem_max = 10000000 #指定了接收套接字缓冲区大小的最大值(以字节为单位)。 net.core.somaxconn = 100000 #Linux kernel参数,表示socket监听的backlog(监听队列)上限 net.core.wmem_default = 11059200 #定义默认的发送窗口大小;对于更大的 BDP 来说,这个大小也应该更大。 net.core.wmem_max = 11059200

mysql数据库基本操作说明

泄露秘密 提交于 2020-12-27 03:44:37
登陆: mysql -uroot -p 查看数据库列表: show databases; 更改访问的数据库: use test; 查看数据表列表: show tables; 建用户: CREATE USER test@'192.168.0.11' IDENTIFIED BY '123123'; 赋权限: grant all privileges on *.* to test@'192.168.1.11' identified by '123123' 收回权限: REVOKE INSERT ON PERSON.* FROM test@'192.168.0.11'; 改密码: use mysql; UPDATE user SET password=PASSWORD('输入新密码') WHERE user='用户名'; 删除用户: DROP USER test@'192.168.0.11'; 查看用户权限: show grants for 'root'@'192.168.1.102'; 查看数据库服务innodb引擎运行状态: show engine innodb status\G; 查看数据库属性配置: show VARIABLES like '%%'; 查看数据库状态: show status like '%Aborted_clients%'; 建库: CREATE DATABASE

Linux系统使用ss命令查看端口状态

独自空忆成欢 提交于 2020-12-25 02:42:53
Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 状态之间的关系 3.ss的使用 3.1 使用示例 3.2 过滤 3.2.1 状态过滤 3.2.2 通过family过滤 3.2.3 使用地址和端口过滤 3.3 常用组合 1.可用工具 逐渐淘汰的 netstat 命令在 net-tools 软件包里(多年没有维护;效率很低) 逐渐成为主流的 ss 命令在 iproute2 软件包里(对常用网络命令做了改进和优化) ArchLinux已弃用"net-tools",转而使用"iproute2" 弃用命令 > 替换命令 arp > ip n ifconfig > ip a, ip link, ip -s netstat > ss, ip route, ip -s link route > ip route 详见: https://www.cnblogs.com/sztom/articles/10764994.html 不推荐使用的Linux网络命令及其替代品 2.ss帮助 $ ss -h -h, --help this message 帮助信息 -V, --version output version information 输出版本信息 -n, --numeric don't

Java分享笔记:Java网络编程--TCP程序设计

天涯浪子 提交于 2020-12-23 19:36:06
[1] TCP编程的主要步骤   客户端(client):     1.创建 Socket对象 ,构造方法的形参列表中需要InetAddress类对象和int型值,用来指明对方的 IP地址和端口号 。     2.通过Socket对象的 getOutputStream()方法 返回 OutputStream 抽象类子类的一个对象,用来发送输出流。     3.通过输出流的 write方法 输出具体的信息。     4. 关闭 相应的流和Socket对象。   服务端(server):     1.创建 ServerSocket 类的对象,在构造器中指明端口号。     2.调用ServerSocket类对象的 accept()方法 ,返回一个Socket类的实例。     3.通过Socket实例的 getInputStream() 方法获取一个输入流,用来接收来自客户端的信息。     4.利用输入流接收数据,并处理数据。     5. 关闭 相应的流、Socket对象、ServerSocket对象。 [2] Java源程序 ( 注意:在测试时先开启服务端方法server(),再开启客户端方法client() ) 1 package pack01; 2 3 import java.io.* ; 4 import java.net.* ; 5 import org.junit

shell脚本之通过脚本获取本机IP地址

怎甘沉沦 提交于 2020-12-22 11:30:48
通过shell脚本获取主机ip地址,并从程序中读取执行shell脚本执行的结果 脚本命令及释义 #/bin/bash ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2 }' | tr -d "addr:" ifconfig -a 用于类unix系统获取主机网络信息的指令; grep inet 用于查找跟inet相关项 grep -v xxx 去除跟xxx相关项,-v表示反选 awk ‘{print $2}’ < 来源: oschina 链接: https://my.oschina.net/u/4311641/blog/4821644

python网络-Socket之udp编程(24)

假如想象 提交于 2020-12-19 12:59:09
一、udp简介 udp --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议。 udp不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。 udp在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。 udp是一种面向无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。 二、udp特点: udp是面向无连接的通讯协议,udp数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。 udp传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内。 udp是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。udp是面向消息的协议,通信时不需要建立连接,数据的传输自然是不可靠的,udp一般用于多点通信和实时的数据业务,比如: 语音广播 TFTP(简单文件传送) SNMP(简单网络管理协议) RIP(路由信息协议,如报告股票市场,航空信息) DNS(域名解释) 三、udp网络程序-发送数据 创建一个udp客户端程序的流程是简单,具体步骤如下: 创建客户端套接字 发送/接收数据 关闭套接字 代码如下: # coding=utf-8

python网络编程(UDP+广播)

半世苍凉 提交于 2020-12-19 12:37:15
UDP广播案例,一端发送,多端接受: 发送端: # UDP广播案例 from socket import * from time import sleep # 设定目标地址 dest=( ' 176.215.122.255 ' ,6666 ) s = socket(AF_INET,SOCK_DGRAM) s.setsockopt(SOL_SOCKET,SO_BROADCAST, 1 ) data = ' 本人到此一游 ' while True: sleep( 2 ) s.sendto(data.encode(),dest) s.close() 接收端: # udp广播案例 from socket import * s = socket(AF_INET,SOCK_DGRAM) # 设置套接字 s.setsockopt(SOL_SOCKET,SO_BROADCAST,1 ) # 选择一个接收地址 s.bind(( ' 0.0.0.0 ' ,9821 )) while True: try : msg,addr =s.recvfrom(1024 ) print ( ' from %s bg %s ' % (addr,msg.decode())) except KeyboardInterrupt: break except Exception as e: print (e) s.close(