赞
踩
在admin项目中存在glance-cirros镜像文件,将glance-cirros镜像指定demo项目进行共享使用。
[root@controller ~]# glance member-create <image_id> <project_id>
[root@controller ~]# glance member-create <image_id> <project_id> accepted
在HTTP文件服务器中存在一个镜像为CentOS7.5-compress.qcow2的镜像,请对该镜像进行压缩操作。
[root@controller ~]# qemu-img convert -c -O qcow2 CentOS7.5-compress.qcow2 CentOS7.5-compress2.qcow2
使用CentOS7.5-compress.qcow2 的镜像,将该镜像转换为RAW格式。
[root@controller ~]# qemu-img convert -f qcow2 -O raw <image_name> <new_image_name>
在OpenStack私有云平台上,使用cirros-0.3.4-x86_64-disk.img镜像创建一个名为cirros的镜像。
openstack image create cirros --disk-format qcow2 --container-format bare --file cirros-0.3.4-x86_64-disk.img
在OpenStack平台上,请修改Glance后端配置文件,将用户的镜像存储配额限制为20GB。
[root@controller ~]# vi /etc/glance/glance-api.conf
user_storage_quota = 20GB
[root@controller ~]# systemctl restart openstack-glance*
在OpenStack平台中,修改相关配置文件,将子进程数量相应的配置修改成2。
vi /etc/glance/glance-api.conf
workers = 2
vi /etc/glance/glance-registry.conf
workers = 2
systemctl restart openstack-glance*
在自行搭建的OpenStack平台中修改相关参数,使Glance可以使用Cinder作为后端存储。
[root@controller ~]# vi /etc/glance/glance-api.conf
show_multiple_locations = True #false修改为True
stores = file,http,cinder #追加cinder
default_store=cinder #添加
[root@controller ~]# systemctl restart openstack-glance-*
[root@controller ~]# vi /etc/cinder/cinder.conf
allowed_direct_url_schemes = cinder #添加
image_upload_use_internal_tenant = True #false修改为True
image_upload_use_cinder_backend = True #false修改为True
# 重启服务
[root@controller ~]# systemctl restart openstack-cinder*
#查询镜像有cinder字样表示成功!
使用OpenStack私有云平台,修改相应的配置文件,使对象存储Swift作为glance镜像服务的后端存储。
# vi /etc/glance/glance-api.conf [glance_store] #stores = file,http #demo_store = file #filesystem_store_datadir = /var/lib/glance/images/ stores = glance.store.swift.Store default_store=swift swift_store_auth_address=http://controller:5000/v3.0 swift_store_endpoint_tyep=internalURL swift_store_multi_tenant=True swift_store_admin_tenants=service swift_store_user=glance swift_store_container=chinaskill_glance swift_store_create_container_on_put=True # systemctl restart openstack-glance-api # glance image-create --name test --disk-format qcow2 --container-format bare --file cirros-0.3.4-x86_64-disk.img
使用OpenStack私有云平台,创建一台云主机,安装NFS服务,然后对接Glance后端存储。
两个节点都要有nfs-utils和rpcbind
nfs服务器端(云主机):创建共享目录,编写/etc/exports文件,内容:/mnt/test *(rw,no_root_squash,no_all_squash,sync)
生效配置exportfs -r
启动rpcbind,nfs
nfs客户端(controller节点):挂载:mount -t nfs 服务器端ip:服务端共享目录的路径 /var/lib/glance/image
给/var/lib/glance/image的属主和属组授予glance用户
在自行搭建的OpenStack私有云平台上,在/root目录下编写Heat模板文件,要求执行yaml文件可以创建名为heat-swift的容器。
[root@controller ~]# vi create_container.yaml
heat_template_version: 2014-10-16
resources:
Swift-container:
type: OS::Swift::Container
properties:
name: heat-swift
[root@controller ~]# openstack stack create heat-swift -t create_container.yaml
在自行搭建的OpenStack私有云平台上,编写Heat模板文件,完成网络的创建。
[root@controller ~]# vi network.yaml heat_template_version: 2015-04-30 description: create network resources: network: type: OS::Neutron::Net properties: name: ext-net subnet: type: OS::Neutron::Subnet properties: name: ext-subnet cidr: 172.16.1.0/24 allocation_pools: - start: 172.16.1.100 - end: 172.16.1.200 gateway_ip: 172.16.1.1 network: {get_resource: network} [root@controller ~]# openstack stack create network -t network.yaml
编写模板server.yaml,按要求创建云主机类型。
# 查看可用于编排的模板版本 [root@controller ~]# openstack orchestration template version list # 查看资源类型 [root@controller ~]# openstack orchestration resource type list [root@controller ~]# vi server.yaml heat_template_version: 2015-10-15 description: create flavor resources: flavor: type: OS::Nova::Flavor properties: name: "flavor_test" flavorid: "1234" ram: 1024 disk: 20 vcpus: 1 [root@controller ~]# openstack stack create test -t server.yaml
编写Heat模板create_user.yaml,创建名为heat-user的用户。
[root@controller ~]# vi create_user.yaml
heat_template_version: 2014-10-16
resources:
user:
type: OS::Keystone::User
properties:
name: heat-user
password: "123456"
domain: Default #放到domin的Default域里
default_project: admin #把创建的heat-uesr这个用户加入到项目当中
roles: [{"role": user,"project": admin}] #把user这个角色加入到admin这个项目当中
[root@controller ~]# openstack stack create -t create_user.yaml heat-user
部署Redis集群,Redis的一主二从三哨兵架构。
准备3台虚拟机,修改主机名,关闭防火墙,关闭selinux,配置/etc/hosts文件 配置iaas源和centos源,下载vsftpd,共享yum源 三台下载redis 配置/etc/redis.conf 注释bind 127.0.0.1 关闭保护模式 开启守护进程 设置密码requirepass “123456” masterauth “123456” 打开AOF持久化支持: appendonly yes 将配置传给两个节点 两个节点配置文件/etc/redis.conf slaveof 主节点ip 6379 三个节点启动redis,并redis-cli进入输入auth 123456,然后输入info replication 查看redis信息 配置哨兵模式,修改配置文件/etc/redis-sentinel.conf protected-mode no sentinel monitor mymaster 主节点ip 6379 2 sentinel auth-pass mymaster 123456 (密码是redis登录密码) 添加配置5秒内没有响应,就反馈服务器挂了 sentinel down-after-milliseconds mymaster 5000 修改配置15秒内master没有活起来,就重新选举主 sentinel failover-timeout mymaster 15000 表示如果master重新选出来后,其它slave节点能同时并行从新master同步缓存的台数有多少个,显然该值越大,所有slave节点完成同步切换的整体速度越快,但如果此时正好有人在访问这些slave,可能造成读取失败,影响面会更广。最安全的设置为1,只同一时间,只能有一台干这件事,这样其它slave还能继续服务,但是所有slave全部完成缓存更新同步的进程将变慢。这里设置为2。 sentinel parallel-syncs mymaster 2 分发给从节点 三个节点启动redis-sentinel redis-cli -p 26379 info sentinel 模拟主节点挂掉 systemctl stop redis 从节点redis-cli ,info replication,查看有没有切换
修改在Redis相关配置,避免AOF文件过大,Redis会进行AOF重写。
[root@controller ~]# vi /etc/redis.conf
auto-aof-rewrite-percentage 0 #触发重写100%修改0%,表示禁用AOF自动重写功能
[root@controller ~]# systemctl restart redis
请修改Redis的内存大页机制,规避大量拷贝时的性能变慢问题。
使用赛项提供的OpenStack私有云平台,创建两台云主机,配置为redis的主从架构。
配置iaas源和centos源,下载vsftpd,共享yum源
配置/etc/redis.conf
注释bind 127.0.0.1
关闭保护模式
开启守护进程
设置密码requirepass “123456”
masterauth “123456”
将配置文件传给从节点
配置文件/etc/redis.conf
slaveof 主节点ip 6379
redis-cli进入输入auth 123456,然后输入info replication 查看redis信息
使用提供的软件包安装JumpServer堡垒机服务,并配置使用该堡垒机对接自己安装的控制和计算节点。
1.关闭防火墙和selinux 2.解包jumpserver.tar.gz 3.配置jumpsever-repo源 4下载python 5.安装docker 6.安装jumpserver [root@jumpserver ~]# cp -rf /opt/docker/* /usr/bin/ [root@jumpserver ~]# chmod 775 /usr/bin/docker* [root@jumpserver ~]# cp -rf /opt/docker.service /etc/systemd/system/ [root@jumpserver ~]# chmod 755 /etc/systemd/system/docker.service [root@jumpserver ~]# systemctl daemon-reload [root@jumpserver ~]# systemctl enable docker --now [root@jumpserver ~]# cd /opt/images/ [root@jumpserver images]# sh load.sh #创建Jumpserver服务组件目录 [root@jumpserver images]# mkdir -p /opt/jumpserver/{core,koko,lion,mysql,nginx,redis} [root@jumpserver images]# cp -rf /opt/config /opt/jumpserver/ #生效环境变量static.env,使用所提供的脚本up.sh启动Jumpserver服务 [root@jumpserver images]# cd /opt/compose/ [root@jumpserver compose]# source /opt/static.env [root@jumpserver compose]# sh up.sh
申请一台云主机,使用提供的软件包安装Elasticsearch服务和SkyWalking服务。再申请一台云主机,用于搭建gpmall商城应用,并配置SkyWalking 监控gpmall主机。
部署Elasticsearch服务: 安装elasticsearch 创建一个用户(elk),用户名自定义 在elastcisearch目录下创建data文件夹 赋予elastcisearch属主属组为elk 修改系统内核 vi /etc/sysctl.conf vm.max_map_count = 655360 生效sysctl -p 修改用户级别的配置文件 hard nofile 65535 soft nofile 65535 编写vi /opt/elasticsearch-7.17.0/config/elasticsearch.yml cluster.name: elk #集群名称自定义 node.name: node-1 #主机名 path.data: /opt/elasticsearch-7.17.0/data/ #指定数据目录 path.logs: /opt/elasticsearch-7.17.0/logs #指定日志目录 network.host: 0.0.0.0 http.port: 9200 cluster.initial_master_nodes: ["node-1"] #elasticsearch节点ip 切换用户elk 启动elasticsearch: bash /bin/elasticsearch -d 退出用户,查看端口是否有9200和9300 浏览器正常访问http:ip:9200 部署SkyWalking OAP服务: 安装skywalking oap服务 安装java vi /opt/apache-skywalking-apm-bin-es7/config/application.yml … #集群配置使用单机版 cluster: selector: ${SW_CLUSTER:standalone} standalone: … #数据库使用elasticsearch7 storage: selector: ${SW_STORAGE:elasticsearch7} … elasticsearch7: nameSpace: ${SW_NAMESPACE:""} clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:10.24.194.203:9200} … ./bin/oapService.sh #启动 查看是否存在11800和12800端口 部署SkyWalking UI服务: vi webapp/webapp.yml … server: port: 8888 … 启动ui服务: ./bin/webappService.sh 存在8888则成功启动 mall节点操作 修改主机名,配置/etc/hosts文件,本地gpmall源 下载mariadb-server mariadb redis nginx 初始化数据库,密码123456,授予数据远程可以访问,创建gpmall数据库,并导入gpmall.sql 修改redis 文件 启动zookeeper和kafka jps查看是否启动成功 删除/usr/share/nginx/html目录底下的文件,并dist目录底下文件传过去,最后修改nginx配置文件 把另一个节点的agent目录拷贝的mall节点,并修改其配置文件 nohup java -javaagent:/root/agent/skywalking-agent.jar -jar gpmall/shopping-provider0.0.1-SNAPSHOT.jar & nohup java -javaagent:/root/agent/skywalking-agent.jar -jar gpmall/user-provider-0.0.1- SNAPSHOT.jar & nohup java -javaagent:/root/agent/skywalking-agent.jar -jar gpmall/gpmall-shopping0.0.1-SNAPSHOT.jar & nohup java -javaagent:/root/agent/skywalking-agent.jar -jar gpmall/gpmall-user-0.0.1- SNAPSHOT.jar & httpd访问网络配置:setsebool -P httpd_can_network_connect 1 浏览器访问
搭建完OpenStack平台后,关闭系统的内存共享,打开透明大页。
echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag #关闭系统的内存共享
echo 'always' > /sys/kernel/mm/transparent_hugepage/enabled #打开透明大页
修改相关参数,将控制节点的最大文件句柄数永久修改为65535。
#临时生效
ulimit -n 65535
#永久生效
cat >> /etc/security/limits.conf <<EOF
* soft nofile 65535
* hard nofile 65535
EOF
修改控制节点的相关配置文件,开启SYN cookie,防止SYN洪水攻击。
echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf
sysctl -p
修改controller节点的配置文件,要求永久生效swappiness为20。
[root@controller ~]# echo "vm.swappiness=20" >> /etc/sysctl.conf
[root@controller ~]# sysctl -p
修改系统配置文件,要求将回写磁盘的时间临时调整为60秒。
[root@controller ~]# vi /etc/sysctl.conf
vm.dirty_writeback_centisecs = 6000
[root@controller ~]# sysctl -p
使用自行搭建的OpenStack私有云平台,修改普通用户权限,使普通用户不能对镜像进行创建和删除操作。
vim /etc/glance/policy.json
add_image: role:admin
delete_image: role:admin
systemctl restart openstack-glance*
使用自行搭建的OpenStack私有云平台,优化KVM的I/O调度算法,将默认的模式修改为none模式。
[root@controller ~]# echo none >> /sys/block/vda/queue/scheduler
请修改cinder后端配置文件将卷复制带宽限制为最高100 MiB/s。
[root@compute ~]# vi /etc/cinder/cinder.conf
volume_copy_bps_limit = 100000000
[root@compute ~]# systemctl restart openstack-cinder*
使用自行创建的OpenStack云计算平台,通过相关配置,开启Cinder块存储的数据加密功能。
解决依赖包冲突,安装libguestfs-tools工具。
[root@controller ~]# yum install -y libguestfs-tools
在云主机上对云硬盘进行操作,先进行分区,然后创建名为/dev/md5、raid级别为5的磁盘阵列加一个热备盘。
mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sdb[1-4]
使用OpenStack私有云平台,请修改相应配置,实现云主机调整实例大小可以使用。
在OpenStack私有云平台上,创建云主机VM1并打快照,使用qemu-img相关命令,修改compat版本。
[root@controller ~]# openstack server image create --name csccvm VM1
[root@controller ~]# mkdir -p /root/cloudsave
报存快照
[root@controller ~]# openstack image save --file /root/cloudsave/csccvm.qcow2 csccvm
修改版本
[root@controller ~]# qemu-img amend -f qcow2 -o compat=0.10 /root/cloudsave/csccvm.qcow2
使用OpenStack私有云平台,创建三个云主机搭建RabbitMQ集群。
三个节点修改主机名为rabbitmq1、rabbitmq2、rabbitmq3(修改完不用bash,用crtl+d刷新一下),关闭防火墙和selinux 配置hosts文件 准备rabbitmq-repo.tar.gz,配置centos和rabbitmq源 三个节点下载rabbitmq-server rabbitmq1启动rabbitmq-server,rabbitmq1开启图形化界面(rabbitmq-plugins enable rabbitmq_management,注意:可以如果记不住,可以通过man rabbitmq-plugins | grep rabbitmq来查看命令)、开启图形化界面之后需要重启rabbitmq-server 使用命令netstat -ntpl查看是否有15672端口,然后使用浏览器输入ip:15672,账号密码都是guest 配置rabbitmq集群服务: 将rabbitmq1的/var/lib/rabbitmq/.erlang.cookie传给rabbitmq2和rabbitmq3的/var/lib/rabbitmq/目录下面,在传成功之后,两个从节点需要修改.erlang.cookie的属主属组权限为rabbitmq 将这两个节点(rabbitmq1、rabbitmq2)作为ram节点加入到集群当中,并开启图形化界面: 两个节点执行相同的命令:(执行以下命令需要启动rabbitmq-server服务systemctl start rabbitmq-server.service) rabbitmqctl stop_app rabbitmqctl join_cluster --ram rabbit@rabbitmq1 rabbitmqctl start_app rabbitmq-plugins enable rabbitmq_management systemctl restart rabbitmq-server.service 然后使用浏览器登录ip:15672,就会看到rabbitmq2和rabbitmq3已经加入到集群当中
使用OpenStack,安装必要组件,将私有云平台的访问策略从http提升至https。
yum install -y mod_ssl httpd
vi /etc/openstack-dashboard/local_setting
USE_SSL=True
CSRF_COOKIE_SECURE=True #去掉注释
SESSION_COOKIE_SECURE=True
SESSION_COOKIE_HTTPONLY=True
systemctl restart httpd
在OpenStack平台上修改相关配置文件,启用-device virtio-net-pci in kvm。
修改相应的配置文件,对Linux系统进行内核优化操作。
请修改相关配置,将Keystone的失效列表缓存时间增加到原来的两倍。
[root@controller ~]# vi /etc/keystone/keystone.conf
# Deprecated group/name - [token]/revocation_cache_time
cache_time = 7200 #在此处添加
[root@controller ~]# systemctl restart httpd
在OpenStack私有云平台,分别通过用户级别、系统级别、配置文件来设置RabbitMQ服务的最大连接数为10240。
1.系统级别修改 echo fs.file-max=10240 >> /etc/sysctl.conf sysctl -p 2.用户级别修改 vi /etc/security/limits.conf * soft nofile 10240 * hard nofile 10240 3.配置文件级别 vi /usr/lib/systemd/system/rabbitmq-server.service 在[Service]下添加一行参数如下: LimitNOFILE=10240 重启服务:systemctl daemon-reload;systemctl restart rabbitmq-server 查看rabbitmq的最大连接数:rabbitmqctl status 看到total_limit,10140,则表示优化成功
编辑nova.conf文件,将内存预留量配置为4GB。
[root@controller ~]# vi /etc/nova/nova.conf
reserved_host_memory_mb=4096
[root@controller ~]# systemctl restart openstack-nova*
修改nova相关配置文件,修改连接池大小和最大允许超出的连接数为10。
vi /etc/nova/nova.conf
在[database]部分中,添加以下两行配置:
max_pool_size = 10 #最大允许的连接数
max_overflow = 10 #最大允许超出连接池大小的连接数
systemctl restart openstack-nova*
安装nova完成后,修改相关配置文件将实例等待事件的最大时间调整为600。
[root@controller ~]# vi /etc/nova/nova.conf
instance_build_timeout=600
[root@controller ~]# systemctl restart openstack-nova*
在OpenStack中,修改调度器规则为会将VM放置到load最低的节点上的调度器。
修改OpenStack相关参数,使得云平台在意外断电又开启后,云主机可以保持断电前的状态。
[root@compute ~]# vi /etc/nova/nova.conf
resume_guests_state_on_host_boot=true
[root@compute ~]# systemctl restart openstack-nova*
在OpenStack平台上,修改相关配置,让长时间不用的镜像缓存在过一定的时间后会被自动删除。
[root@compute ~]# vim /etc/nova/nova.conf
remove_unused_base_images=true
[root@compute ~]# systemctl restart openstack-nova-compute
使用提供的OpenStack云平台创建两台云主机,在两台云主机中部署MongoDB数据库服务并配置MongoDB主从数据库。
使用提供的makechk.tar.gz包安装chkrootkit入侵检测工具,安装完毕后使用chkrootkit工具扫描系。
然后使用提供的sepb_elk_latest.tar镜像安装ELK服务。
使用提供的ceph.tar.gz软件包,安装ceph服务并完成初始化操作。
#准备三台虚拟机,三台添加一块硬盘。第一个虚拟机作为管理节点,并实现管理节点免密登录其他节点 #三个节点配置ceph yum源 #实现三个节点时间同步 #管理节点安装ceph-deploy,创建/etc/ceph目录并进入 #ceph集群初始化 ceph-deploy new <node1> <node2> <node3> #三个节点安装mon ceph-deploy install --mon --no-adjust-repos --nogpgcheck <node1> <node2> <node3> #初始化mon节点生成配置信息 ceph-deploy mon create-initial #将配置传给从节点 ceph-deploy admin <node1> <node2> <node3> #消除报警信息 ceph config set mon auth_allow_insecure_global_id_reclaim false #三个节点安装mgr ceph-deploy install --no-adjust-repos --nogpgcheck --mgr <node1> <node2> <node3> #创建mgr节点并生成相关配置 ceph-deploy mgr create <node1> <node2> <node3> #三个节点安装osd ceph-deploy install --no-adjust-repos --nogpgcheck --osd <node1> <node2> <node3> #配置osd存储节点 ceph-deploy --overwrite-conf osd create --data /dev/sdb <node1> ceph-deploy --overwrite-conf osd create --data /dev/sdb <node2> ceph-deploy --overwrite-conf osd create --data /dev/sdb <node3>
修改OpenStack平台中Glance服务的配置文件,将Glance后端存储改为Ceph存储。
ceph osd pool create images 64 #创建名为images的ceph池 rdb pool init images #初始化名为images的池 #controller节点安装ceph-common ceph-deploy admin <controller_ip> #把之前创建的配置文件到controller节点,并将ceph.conf设置权限644 #配置ceph作为glance后端存储 [glance_store] stores = file,http,rbd #demo_store = file #filesystem_store_datadir = /var/lib/glance/images/ default_store=rbd rbd_store_chunk_size = 8 rbd_store_pool = images rbd_store_user = admin rbd_store_ceph_conf = /etc/ceph/ceph.conf #重启glance-api #ceph集群查看命令 rbd ls images
修改OpenStack平台中cinder服务的配置文件,将cinder后端存储改为Ceph存储。
ceph osd pool create volumes 64 #创建cinnder池 rbd pool init volumes #初始化 ceph-deploy admin 192.168.100.20 #把之前创建的配置文件到compute节点 #compute节点安装ceph-common #配置cinder对接ceph存储 [DEFAULT] transport_url = rabbit://openstack:000000@controller auth_strategy = keystone my_ip = 192.168.100.20 enabled_backends = ceph #lvm替换ceph glance_api_servers = http://controller:9292 [ceph] rbd_cluster_name = ceph rbd_pool = volumes #先前创建的池名 rbd_user = admin rbd_ceph_conf = /etc/ceph/ceph.conf rbd_keyring_conf = /etc/ceph/ceph.client.admin.keyring rbd_flatten_volume_from_snapshot = false rbd_secret_uuid = 2d7aa67e-d339-489e-8741-9f13bd29577d #通过uuidgen命令生成 rbd_max_clone_depth = 5 rbd_store_chunk_size = 4 #compute节点重启cinder服务 #controller节点查看cinder服务 systemctl volume service list #创建volume,测试是否成功
修改OpenStack平台中Nova服务的配置文件,将Nova后端存储改为Ceph存储。
ceph osd pool create novas 64 #创建nova池
rbd pool init novas #初始化
ceph-deploy admin <controller_ip> #把之前创建的配置文件到controller节点
#controller节点安装ceph-common
#配置nova对接ceph存储
images_type = rbd
images_rbd_pool=novas #先前创建的nova池名
images_rbd_ceph_conf =/etc/ceph/ceph.conf
rbd_user=admin
rbd_secret_uuid=2d7aa67e-d339-489e-8741-9f13bd29577d #要跟cinder配置文件中uuid一致
#重启nova-compute
#创建虚拟机,测试
使用提供的OpenStack云平台,申请一台云主机,使用提供的软件包安装部署MINIO服务并使用systemctl管理。
#minio server wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /mnt/data --console-address ":9001" & #minio client wget https://dl.min.io/client/mc/release/linux-amd64/mc chmod +x mc mc alias set minio/ http://MINIO-SERVER MYUSER MYPASSWORD #相关操作 ./mc mb minio/test #创建对象 ./mc cp anaconda-ks.cfg minio/test #上传文件 ./mc ls minio/test #查看对象 ./mc cat minio/test/anaconda-ks.cfg #查看对象内容 ./mc head -n 2 minio/test/anaconda-ks.cfg #查看对象内容开头前两行 ./mc stat minio/test #显示对象元素据 ./mc rm minio/test/anaconda-ks.cfg #删除对象 ./mc rb minio/test #删除桶
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。