赞
踩
本案例要求了解今日项目所需主机列表信息,快速构建好一个Ansible平台,将项目所需软件上传云平台,要求如下:
准备如表-1所示的实验环境,配置主机名称、IP地址、YUM源。
表-1 主机列表
实现此案例需要按照如下步骤进行。
步骤一:准备基础环境
1)修改/etc/hosts
hosts文件是Linux系统上负责IP地址与域名快速解析的文件
[root@ecs-proxy ~]# cat >> /etc/hosts <<EOF 192.168.1.11 nginx-0001 192.168.1.12 nginx-0002 192.168.1.13 nginx-0003 192.168.1.21 nfs 192.168.1.22 backup 192.168.1.31 redis-0001 EOF
2) 修改Ansible配置文件
ansible配置文件查找顺序
首先检测ANSIBLE_CONFIG变量定义的配置文件
其次检查当前目录下的./ansible.cfg文件
再次检查当前用户家目录下~/ansible.cfg文件
最后检查/etc/ansible/ansible.cfg文件
[root@ecs-proxy ~]# mkdir /root/ansible [root@ecs-proxy ~]# cat >> /root/ansible/ansible.cfg <<EOF [defaults] inventory = /root/ansible/hosts #主机清单配置文件 host_key_checking = False #不校验密钥(第一次ssh时不提示yes/no) EOF
3) 修改主机清单文件(清单文件名必须与主配置文件inventory定义的一致)。
[root@ecs-proxy ~]#cat >> /root/ansible/hosts <<EOF [web] #定义主机组(组名称任意) 192.168.1.1[1:3] #定义组中的具体主机 [nfs] 192.168.1.21 [backup] 192.168.1.22 [redis] 192.168.1.31 EOF
4) 上传软件包
将项目需要用到的全部软件包拖拽至Xshell终端上传到/root目录下,并解压。
[root@ecs-proxy ~]# unzip /root/project3.zip
本案例要求要部署NFS文件共享服务器,并与backup主机实现数据实时同步,要求如下:
在中小型企业集群架构的工作场景中,NFS网络文件系统一般用来存储共享视频、图片、附件等静态资源文件,通常网站用户上传的文件都会放在NFS共享里。【注意:网站的代码程序不要放在NFS共享里,直接批量发布到Web节点提供访问比共享到NFS里访问效率更高。】
实现此案例需要按照如下步骤进行。
步骤一:购买华为云服务器
1)打开华为云官网—>【控制台】—>【弹性云服务器】—>【购买弹性云服务器】
基础配置购买信息 如图-1,图-2所示。
按照如下信息购买华为云主机。
基础配置:通用型SSD 10G 2块 网络配置:手动分配IP地址 192.168.1.21 高级配置:云服务器名称 nfs 确认配置:1台
图-1
图-2
2)网络配置购买信息 如图-3所示。
图-3
3)高级配置购买信息,如图-4所示。
图-4
4)确认配置,如图-5所示。
图-5
步骤二:对新添加的两块磁盘分区
1)对/dev/vdb磁盘进行分区,全盘只分为一个1个分区。
[root@nfs ~]# lsblk #列出所有可用设备信息 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk └─vda1 253:1 0 40G 0 part / vdb 253:16 0 10G 0 disk vdc 253:32 0 10G 0 disk
[root@nfs ~]# fdisk /dev/vdb #对/dev/vdb磁盘进行分区
Command (m for help): n #新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): #回车 默认创建主分区
Using default response p
Partition number (1-4, default 1): #回车 默认分区编号为1
First sector (2048-20971519, default 2048): #回车 起始扇区默认为2048
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): #回车 结束扇区默认为20971519
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): t #更改分区的系统ID号
Selected partition 1 #对第一个分区进行更改
Hex code (type L to list all codes): 8e #8e 表示Linux LVM(逻辑卷)
Changed type of partition ‘Linux’ to ‘Linux LVM’
Command (m for help): w #保存并退出
The partition table has been altered!
2)对/dev/vdc磁盘进行分区,全盘只分为一个1个分区。
[root@nfs ~]# fdisk /dev/vdc #对/dev/vdc磁盘进行分区 ...... (参照步骤/dev/vdb的划分方式完成)
3)查看分区结果。
[root@nfs ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk └─vda1 253:1 0 40G 0 part / vdb 253:16 0 10G 0 disk └─vdb1 253:17 0 10G 0 part vdc 253:32 0 10G 0 disk └─vdc1 253:33 0 10G 0 part
步骤三:将新添加的两块硬盘制作逻辑卷
逻辑卷(LVM)是Linux环境中对磁盘分区进行管理的一种机制,可提高磁盘分区管理的灵活性。
1)安装制作逻辑卷的软件包
[root@nfs ~]# yum -y install lvm2
2)创建物理卷
[root@nfs ~]# pvcreate /dev/vdb1 /dev/vdc1 Physical volume "/dev/vdb1" successfully created. Physical volume "/dev/vdc1" successfully created.
3)新建名字为vg0的卷组,并查看卷组的相关信息
[root@nfs ~]# vgcreate vg0 /dev/vdb1 /dev/vdc1 Volume group "vg0" successfully created
[root@nfs ~]# vgdisplay #显示卷组信息
— Volume group —
VG Name vg0
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 19.99 GiB
PE Size 4.00 MiB
Total PE 5118
Alloc PE / Size 0 / 0
Free PE / Size 5118 / 19.99 GiB
VG UUID 1fPi76-7p01-3lMp-bmZq-30m7-Km95-wxRtLF
4)创建逻辑卷
创建逻辑卷:lvcreate -L 大小 -n 逻辑卷名称 卷组
[root@nfs ~]# lvcreate -L 19.99G -n lv0 vg0
Rounding up size to full physical extent 19.99 GiB
Logical volume “lv0” created.
[root@nfs ~]# lvscan #查看目前系统中有的逻辑卷
ACTIVE ‘/dev/vg0/lv0’ [19.99 GiB] inherit
5)格式化
[root@nfs ~]# mkfs.xfs /dev/vg0/lv0
[root@nfs ~]# blkid /dev/vg0/lv0 #查看逻辑卷设备的属性
/dev/vg0/lv0: UUID=“63ed7305-34f4-4451-a5e7-f5ddee460140” TYPE=“xfs”
6)创建挂载点,并挂载。
[root@nfs ~]# mkdir /common #创建挂载点目录
[root@nfs ~]# echo ‘/dev/vg0/lv0 /common xfs defaults 0 0’ >> /etc/fstab #设置开机自动挂载
[root@nfs ~]# mount -a #挂载
[root@nfs ~]# df -Th #查验结果
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 486M 0 486M 0% /dev
tmpfs tmpfs 496M 0 496M 0% /dev/shm
tmpfs tmpfs 496M 6.8M 489M 2% /run
tmpfs tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 ext4 40G 2.1G 36G 6% /
tmpfs tmpfs 100M 0 100M 0% /run/user/0
/dev/mapper/vg0-lv0 xfs 20G 33M 20G 1% /common
步骤四:部署NFS共享服务
1)安装NFS服务器所需软件包。
[root@nfs ~]# yum -y install nfs-utils
2)创建NFS配置文件。
NFS主要配置文件:/etc/exports,默认该文件里面内容是空。
ro表示只读权限
sync请求或写入数据时,数据同步写入到NFS服务器的硬盘后才返回
[root@nfs ~]# echo “/common 192.168.1.0/24(ro,sync)” >> /etc/exports
3)重载配置文件信息。
#一般修改NFS配置文档后,执行exportfs –rv即可使修改的/etc/exports生效。
[root@nfs ~]# exportfs -rv
4)启动系统服务nfs-server,并设置开机自启。
NFS使用的是随机端口,每次启动NFS都需要将自己的随机端口注册到rpcbind服务,这样客户端访问NFS时先到rpcbind查询端口信息,得到端口信息后再访问NFS服务。服务端首先运行rpcbind服务,然后运行 nfs-server服务。
[root@nfs ~]# systemctl enable --now rpcbind
[root@nfs ~]# systemctl enable --now nfs-server
[root@nfs ~]# showmount -e localhost #列出本机NFS共享资源
Export list for localhost:
/common 192.168.1.0/24
本案例要求将NFS云服务器共享目录的数据同步至backup云服务器,具体要求如下:
inotifywait与rsync的结合,主要思路:
while inotifywait监控操作 do 需要执行的rsync同步操作 done
实现此案例需要按照如下步骤进行。
步骤一:购买云服务器
1)按照如下信息购买华为云主机。
基础配置:无 网络配置:手动分配IP地址 192.168.1.22 高级配置:云服务器名称 backup 确认配置:1台
步骤二:实现rsync+inotify实时同步
1)拷贝数据。将ecs-proxy主机上的inotify-tools-3.13.tar.gz软件包和tedu.jpg图片远程拷贝至nfs云主机。
[root@nfs ~]#scp root@192.168.1.252:/root/project3/DAY01/inotify-tools-3.13.tar.gz /root [root@nfs ~]#scp root@192.168.1.252:/root/project3/DAY01/test.jpg /root
2)安装inotify-tools软件包。
[root@nfs ~]# yum -y install rsync #安装rsync软件包,华为云服务器默认已安装。 [root@nfs ~]# tar -xf /root/inotify-tools-3.13.tar.gz -C /usr/src/ [root@nfs ~]# cd /usr/src/inotify-tools-3.13/ [root@nfs inotify-tools-3.13]# ./configure #配置 [root@nfs inotify-tools-3.13]# make && make install #编译&&安装
3)实现nfs到backup免密码交互,将ecs-proxy上的私钥拷贝到nfs服务器上。
[root@nfs inotify-tools-3.13]# scp root@192.168.1.252:/root/.ssh/id_rsa /root/.ssh [root@nfs inotify-tools-3.13]# echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config #避免第一次输入提示(yes/no)
4)编写数据同步脚本并测试效果。
[root@nfs inotify-tools-3.13]# cat /root/irsync.sh #!/bin/bash FROM_DIR="/common" RSYNC_CMD="rsync -az --delete $FROM_DIR root@192.168.1.22:/" while inotifywait -rqq -e modify,move,create,delete,attrib $FROM_DIR do $RSYNC_CMD done [root@nfs inotify-tools-3.13]# chmod +x /root/irsync.sh [root@nfs inotify-tools-3.13]# /root/irsync.sh & [root@nfs inotify-tools-3.13]# cp /root/test.jpg /common [root@nfs inotify-tools-3.13]# echo 123 > /common/a.txt
5)在backup云主机验证同步结果
[root@backup ~]# ls /common a.txt test.jpg
本案例要求在redis-0001云服务器上部署redis服务并启动服务,具体要求如下:
实现此案例需要按照如下步骤进行。
步骤一:购买云服务器
1)按照如下信息购买华为云主机。
基础配置:无 网络配置:手动分配IP地址 192.168.1.31 高级配置:云服务器名称 redis-0001 确认配置:1台
步骤二:部署Redis服务器
1)安装软件包。
[root@resdis ~]# scp root@192.168.1.252:/root/project3/DAY01/redis-4.0.8.tar.gz /root [root@resdis ~]# tar -xf /root/redis-4.0.8.tar.gz [root@resdis ~]# cd redis-4.0.8/ [root@resdis redis-4.0.8]# yum -y install gcc gcc-c++ [root@resdis redis-4.0.8]# make && make install [root@resdis redis-4.0.8]# /root/redis-4.0.8/utils/install_server.sh #redis的安装,可一路回车 Welcome to the redis service installer This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service…
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server…
Installation successful!
2)更改监听IP为192.168.1.31。
[root@resdis redis-4.0.8]# sed -i '/^bind/s/127.0.0.1/192.168.1.31/' /etc/redis/6379.conf [root@resdis redis-4.0.8]# /etc/init.d/redis_6379 restart
3)在redis的服务管理脚本中指定IP连接。
[root@resdis redis-4.0.8]# sed -ri "43 s/(.*)(shutdown)/\1 -h 192.168.1.31 \2/" /etc/init.d/redis_6379 [root@resdis redis-4.0.8]# /etc/init.d/redis_6379 restart
4)测试。
[root@resdis redis-4.0.8]# netstat -antpu | grep redis tcp 0 0 192.168.1.31:6379 0.0.0.0:* LISTEN 14632/redis-server [root@redis-0001 redis-4.0.8]# redis-cli -h 192.168.1.31 192.168.1.31:6379> ping PONG
本案例要求在nginx-0001、nginx-0002、nginx-0003上部署nginx网站服务器,并挂载NFS服务器的共享目录到网站服务器,实现数据共享,具体要求如下:
实现此案例需要按照如下步骤进行。
目前的网站一般都会有动态和静态数据,默认Nginx仅可以处理静态数据,用户访问任何数据都是直接返回对应的文件,但如果访问的是一个脚本,就会导致直接返回脚本给用户,而用户没有脚本解释器,也看不懂脚本源代码!
步骤一:购买华为云服务器
1)按照如下信息购买华为云主机。
基础配置:无 网络配置:手动分配IP地址 192.168.1.11 高级配置:云服务器名称 nginx 确认配置:3台
将用到的相关软件包进行分发。
[root@ecs-proxy ~]# cd /root/ansible [root@ecs-proxy ansible]# ansible web -m copy -a "src=/root/project3/DAY01/nginx-1.12.2.tar.gz dest=/root" 将用到的网页资源包进行分发。 [root@ecs-proxy ansible]# ansible web -m copy -a "src=/root/project3/DAY01/php-redis-demo.tar.gz dest=/root" 将用到的PHP扩展模块软件包进行分发。 [root@ecs-proxy ansible]# ansible web -m copy -a "src=/root/project3/DAY01/php-redis-2.2.4.tar.gz dest=/root"
步骤二:构建网站服务器集群
(nginx-0001、nginx-0002、nginx-0003三台云服务器配置相同,可先在第一台手动安装,后续的主机用脚本执行安装。)
1)安装依赖包。
[root@nginx-0001 ~]#yum -y install php php-fpm php-mysql mariadb-server php(PHP的主程序,解释器,负责解析PHP代码。) php-fpm(是让PHP支持支持fastcgi的扩展) php-mysql(是让PHP可以连接使用nysql数据库的扩展包) mariadb-server(数据库服务器软件)
2)源码安装Nginx。
[root@nginx-0001 ~]# yum -y install gcc pcre-devel openssl-devel [root@nginx-0001~]# tar -xf /root/nginx-1.12.2.tar.gz [root@nginx-0001 ~]# cd /root/nginx-1.12.2 [root@nginx-0001 nginx-1.12.2]#./configure --with-http_ssl_module --with-http_stub_status_module [root@nginx-0001 nginx-1.12.2]# make && make install
3)更改主配置文件,实现动静分离。
[root@nginx-0001 nginx-1.12.2]#sed -i '65,71s/#//' /usr/local/nginx/conf/nginx.conf [root@nginx-0001 nginx-1.12.2]#sed -i '/SCRIPT_FILENAME/d' /usr/local/nginx/conf/nginx.conf [root@nginx-0001 nginx-1.12.2]#sed -i 's/fastcgi_params/fastcgi.conf/' /usr/local/nginx/conf/nginx.conf
查看更改的是否正确【更改之后的结果如下】
[root@nginx-0001 nginx-1.12.2]# sed -n ‘65,70p’ /usr/local/nginx/conf/nginx.conf
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
4)启动服务
[root@nginx-0001 nginx-1.12.2]#systemctl enable --now php-fpm
[root@nginx-0001 nginx-1.12.2]#/usr/local/nginx/sbin/nginx
[root@nginx-0001 nginx-1.12.2]#echo /usr/local/nginx/sbin/nginx >> /etc/rc.local //设置开机自启
[root@nginx-0001 nginx-1.12.2]#chmod +x /etc/rc.local
5)部署网页资源
[root@nginx-0001 nginx-1.12.2]# tar -xf /root/php-redis-demo.tar.gz -C /root [root@nginx-0001 nginx-1.12.2]# cp -rf /root/php-redis-demo/* /usr/local/nginx/html/
步骤三:Nginx网站服务挂载NFS服务器共享目录
1)安装依赖包。
[root@nginx-0001 nginx-1.12.2]# cd ~ [root@nginx-0001 ~]# yum -y install nfs-utils [root@nginx-0001 ~]# showmount -e 192.168.1.21 Export list for 192.168.1.21: /common 192.168.1.0/24
2)、创建挂载点并设置开机自动挂载
[root@nginx-0001 ~]# mkdir /data [root@nginx-0001 ~]# echo '192.168.1.21:/common /data nfs defaults 0 0' >> /etc/fstab [root@nginx-0001 ~]# mount -a
[root@nginx-0001 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 486M 0 486M 0% /dev
tmpfs tmpfs 496M 0 496M 0% /dev/shm
tmpfs tmpfs 496M 6.8M 489M 2% /run
tmpfs tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 ext4 40G 2.1G 36G 6% /
tmpfs tmpfs 100M 0 100M 0% /run/user/0
192.168.1.21:/common nfs4 20G 33M 20G 1% /data
3)、更改Nginx配置文件。【浏览器缓存优化】
修改nginx配置文件,如果是图片,则让用户的浏览器缓存30天。
[root@nginx-0001 ~]# vim +71 /usr/local/nginx/conf/nginx.conf
location ~* .(gif|jpg|png) {
root /data;
expires 30d;
}
#备注:location匹配用户的地址栏,如果用户在访问的是图片;
#expires告诉浏览器应该把资料缓存多久。
[root@nginx-0001 ~]# /usr/local/nginx/sbin/nginx -s reload
[root@nginx-0001 ~]# netstat -utnlp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4073/nginx: master
本案例本案例要求安装扩展模块实现PHP的Session共享,具体要求如下:
实现此案例需要按照如下步骤进行。
步骤一:为Web网站服务器安装PHP扩展模块
Session:存储在服务器端,保存用户名、登陆状态等信息。
Cookies:由服务器下发给客户端,保存在客户端的一个文件里。
如果编译安装php的时候,没有安装拓展,可以后续通过phpize安装拓展。
phpize是一个运行脚本,主要作用是检测php的环境还有在特定的目录中生成相应的configure文件,这样make install之后,生成的.so文件才会自动加载到php扩展目录下面。
[root@nginx-0001 ~]# yum -y install autoconf automake php-cli php-devel [root@nginx-0001 ~]# tar -xf /root/php-redis-2.2.4.tar.gz -C /root [root@nginx-0001 ~]# cd /root/phpredis-2.2.4/
[root@nginx-0001 phpredis-2.2.4]# phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
[root@nginx-0001 phpredis-2.2.4]# ./configure --with-php-config=/usr/bin/php-config
[root@nginx-0001 phpredis-2.2.4]# make && make install
[root@nginx-0001 phpredis-2.2.4]# ls /usr/lib64/php/modules/
curl.so fileinfo.so json.so mysqli.so mysql.so pdo_mysql.so pdo.so pdo_sqlite.so phar.so redis.so sqlite3.so zip.so
2)、修改配置文件php.ini
指定模块目录的路径
[root@nginx-0001 phpredis-2.2.4]#echo ‘extension_dir = “/usr/lib64/php/modules/”’ >> /etc/php.ini
指定扩展模块文件名
[root@nginx-0001 phpredis-2.2.4]#echo ‘extension = “redis.so”’ >> /etc/php.ini
3)、修改php-fpm的配置文件
默认定义Sessoin会话信息本地计算机(默认在/var/lib/php/session)
#定义Session信息存储在公共的redis服务器上,主机参数中为redis
[root@nginx-0001 phpredis-2.2.4]# sed -ri ‘/session.save_handler/s/(.)(=)(.)/\1\2 redis/’ /etc/php-fpm.d/www.conf
#通过path参数定义公共的redis服务器在哪(服务器的IP和端口)
[root@nginx-0001 phpredis-2.2.4]#sed -ri ‘225c php_value[session.save_path] = “tcp://192.168.1.31:6379”’ /etc/php-fpm.d/www.conf
[root@nginx-0001 phpredis-2.2.4]#systemctl restart php-fpm
[root@nginx-0001 phpredis-2.2.4]# netstat -anput | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 10814/php-fpm: mast
步骤二:在华为负载均衡ELB中添加监听器和后端服务器
1)点击左上角的服务列表,在出现的界面中点击“弹性负载均衡ELB”,如图-8所示。
弹性负载均衡器接受来自客户端的传入流量并将请求转发到一个或多个可用区中的后端服务器。
*监听器:您可以向您的弹性负载均衡器添加一个或多个监听器。监听器使用您配置的协议和端口检查来自客户端的连接请求,并根据您定义的转发策略将请求转发到一个后端服务器组里的后端服务器。
*后端服务器组:每个后端服务器组使用您指定的协议和端口号将请求转发到一个或多个后端服务器。
图-6
2)点击自己创建的负载均衡名称,如图-7所示。
图-7
3)点击【监听器】->【添加监听器】,如图-8所示。
图-8
4)配置监听器的名称,如图-11所示。配置后端服务器组的名称,如图-9所示。
图-9
图-10
5)添加后端服务器。如图-11所示。
点击刚才所创建的监听器名称—>【后端服务器组】->【添加】
图-11
6)、将三台Nginx添加进后端服务器,并配置监听端口。图-12、图13所示。
图-12
图-13
【注意:刚添加后端服务完成后,健康检查结果为异常。需要等待30s,刷新页面。健康健康检查结果为正常。】
步骤三:测试Session共享
注意:修改index.php和home.php两个文件的内容,添加页面颜色属性。以区别后端不同的服务器:<body bgcolor=颜色>。
1)更改Nginx-0002和Nginx-0003测试页的背景颜色。
Nginx-0001 白 默认底色即为白色,无需修改。
Nginx-0002 红
[root@nginx-0002 ~]# sed -i ‘10c <body bgcolor=red>’ /usr/local/nginx/html/index.php
[root@nginx-0002 ~]# sed -i ‘15c <body bgcolor=red>’ /usr/local/nginx/html/home.php
Nginx-0003 蓝
[root@nginx-0003 ~]# sed -i ‘10c <body bgcolor=blue>’ /usr/local/nginx/html/index.php
[root@nginx-0003 ~]# sed -i ‘15c <body bgcolor=blue>’ /usr/local/nginx/html/home.php
2) 更客户端使用浏览器访问三台不同的Web服务器。输入任意用户名和密码。如图-14、图-15、图-16所示。
图-14
Ctrl+F5强制刷新,无需再次输入密码登录,即可登录其他服务器。实现Session共享。
图-15
图-16
3)查看Redis服务器上存储的Session值。
[root@resdis ~]# redis-cli -h 192.168.1.31
192.168.1.31:6379> keys *
本案例要求在ecs-proxy上部署Jumpserver堡垒机。
JumpServer 是全球首款完全开源的堡垒机,是符合 4A 的专业运维审计系统。
伴随着企业 IT 的发展,企业可以对IT 资产进行集中管理,并且构建统一访问入口,从而有效地控制 IT 系统的运维风险。
身份认证Authentication :防止身份冒用和复用
账号管理Account : 防止内部误操作和权限滥用
授权控制Authorization : 人员和资产的管理
安全审计Audit :追溯的保障和事故分析的依据
Jumpserver官方网站 https://jumpserver.org/
实现此案例需要按照如下步骤进行。
步骤一:将ecs-proxy主机规格进行升级。
1)打开华为云官网—>【控制台】—>【弹性云服务器】—>【购买弹性云服务器】
基础配置购买信息 如图-17、图-18、图-19所示。
按照如下信息购买华为云主机。
基础配置:通用计算型 s6.large.2 2vCPUs|4GB
网络配置:手动分配IP地址 192.168.1.100 弹性公网IP(全动态BGP) 按带宽计费 带宽大小1
高级配置:云服务器名称 jumpserver 密码
确认配置:1台
图-17
图-18
图-19
步骤二、Jumpserver极速安装
参考官方网站,进行部署构建。
注意:安装时,redis配置文件必须指定为/etc/redis.conf
[root@jumpserver setuptools]# scp root@192.168.1.252:/root/project3/DAY01/redis-4.0.8.tar.gz /root
[root@jumpserver ~]# tar -xf redis-4.0.8.tar.gz -C /root
[root@jumpserver ~]# cd /root/redis-4.0.8/
[root@jumpserver redis-4.0.8]# make && make install
[root@jumpserver redis-4.0.8]# /root/redis-4.0.8/utils/install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]/etc/redis.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port : 6379
Config file : /etc/redis.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service…
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server…
Installation successful!
[root@jumpserver redis-4.0.8]# /etc/init.d/redis_6379 stop
手动编写redis服务的service文件
[root@jumpserver redis-4.0.8]# vim /usr/lib/systemd/system/redis.service [Unit] Description=The Redis Server After=syslog.target After=network.target [Service] Type=forking ExecStart=/etc/init.d/redis_6379 start ExecReload=/etc/init.d/redis_6379 restart ExecStop=/etc/init.d/redis_6379 stop [Install] WantedBy=multi-user.target
[root@jumpserver redis-4.0.8]# systemctl daemon-reload
[root@jumpserver redis-4.0.8]# systemctl restart redis
2) 安装jumpserver工程包
[root@jumpserver ~]# cd /opt/
[root@jumpserver opt]# yum -y install git
[root@jumpserver opt]# wget -qO /opt/setuptools.tar.gz http://demo.jumpserver.org/download/setuptools.tar.gz
[root@jumpserver opt]# tar xf setuptools.tar.gz
[root@jumpserver opt]# cd setuptools/
[root@jumpserver setuptools]# cp config_example.conf config.conf //将配置文件改名
[root@jumpserver setuptools]# ./jmsctl.sh help //列出使用方法
[root@jumpserver setuptools]# ./jmsctl.sh install
LINA:负责页面的展现
Core:Jumpserver管理后台的核心组件。
Luna:是Web Terminal前端页面展现。
koko:实现了SSH Server和Web Terminal Server的组件。
Guaca:Apache跳板机项目,Jumpserver使用其组件实现RDP功能。
注意:如果在查看组件状态时,有出现ERROR字样的,可使用jmsctl脚本单独安装。
[root@jumpserver setuptools]# ./jmsctl.sh status
__ _____
/ /_ ______ ___ ____ / / ______ _____ _____
__ / / / / / __ `__ / __ \__ / _ / / | / / _ / /
/ // / // / / / / / / // // / _/ / | |/ / / /
_/_,// // // .//___// |/_//
/_/Version: v2.3.1
MySQL Check … [ OK ]
Redis Check … [ OK ]
Docke. Check … [ OK ]
Nginx Check … [ OK ]
Py3 Check … [ OK ]
Core Check … [ OK ]
Koko Check … [ OK ]
Guaca. Check … [ OK ]
4)在浏览器中输入公网IP地址,如图-20所示。
帐号:admin 密码:admin
第一次登陆需要重置密码
图-20
步骤三、添加资产
图-21
名称为显示名,用户名为登录名。密码可自定义。
该用户的创建是为了后期登录jumpserver。
/
图-22
创建管理用户,管理用户是资产(被控服务器)上的 root,或拥有 NOPASSWD: ALL sudo 权限的用户, JumpServer 使用该用户来 推送系统用户
、获取资产硬件信息
等。如图-23、图-24所示。
图-23
名称可以自定义
用户名为nignx-0001主机的管理员用户root
密码为nginx-0001主机root用户密码
图-24
创建资产,如图-25,图-26所示
图-25
主机名可以自定义,最好和创建主机得主机名一致
IP地址为nginx-0001主机的IP地址
系统平台选择Linux
图-26
目前处于可连接,如图-27所示。
图-27
前面创建了用户,创建了资产。在jumpserver中需要对用户授权资产。
创建系统用户。系统用户是 JumpServer 跳转登录资产时使用的用户,可以理解为登录资产用户。 简单来说是用户使用自己的用户名登录 JumpServer,JumpServer 使用系统用户登录资产。如图-28、图29所示。
图-28
名称为显示名称,可自定义。
用户名可自定义,随后管理用户会在资产设备中推送(创建)该用户。
开启自动推送。
密码在此处自定义,推送时,根据此处设置的密码在资产设备中设置。
图-29
资产授权,如图-30,图-31所示。
图-30
图-31
使用Web终端界面连接,如图-31,图-32所示。
图-31
图-32
从ecs-proxy主机上去连接Jumpserver主机。使用的admin用户就是jumpserver中的用户。(也可只用我们之前创建的用户webuser登录)
[root@ecs-proxy ~]# ssh admin@192.168.1.100 -p2222
Administrator, 欢迎使用JumpServer开源堡垒机系统1) 输入 部分IP,主机名,备注 进行搜索登录(如果唯一). 2) 输入 / + IP,主机名,备注 进行搜索,如:/192.168. 3) 输入 p 进行显示您有权限的主机. 4) 输入 g 进行显示您有权限的节点. 5) 输入 d 进行显示您有权限的数据库. 6) 输入 k 进行显示您有权限的Kubernetes. 7) 输入 r 进行刷新最新的机器和节点信息. 8) 输入 h 进行显示帮助. 9) 输入 q 进行退出.
Opt>p
ID | 主机名 | IP | 备注
±------±----------------------±---------------------------±------------------+
1 | nginx-0001 | 192.168.1.11 |
页码:1,每页行数:11,总页数:1,总数量:1
提示:输入资产ID直接登录,二级搜索使用 // + 字段,如://192 上一页:b 下一页:n
搜索:
[Host]> 1
复用SSH连接(nginx01@nginx-0001)[连接数量: 2]
Last login: Mon Sep 28 02:17:44 2020 from 192.168.1.100
Welcome to Huawei Cloud Service
[nginx01@nginx-0001-0001 ~]$ pwd
/home/nginx01
5)查看录像
查看录像可以知晓之前做过的操作,如图-33所示。
图-33
附件知识:
1、网络流量度量术语
IP(Internet Protocal),这里指独立IP数,独立IP数是指不同IP地址的计算机访问网站时被统计的总次数。一天内相同IP地址的客户端访问网站页面只会被记录一次。
PV(Page View),访问量,即页面浏览量或者点击量,用户每次对网站的访问均被记录1次。用户对同一页面的多次访问,访问量值累计。(每刷新一次也算)
2、并发连接。
定义:网站服务器在单位时间内能够处理的最大连接数。
3、QPS
定义:每秒钟处理完请求的次数。(QPS = 并发量 / 平均响应时间)
4、Fast CGI(Fast common gateway interface 快速通用网关接口),是网站服务器和动态语言间通信的接口。如图17所示。
(Nginx不支持对外部动态程序直接调用或解析,所以的动态程序必须通过FastCGI接口来调用。)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。