第一篇:本文
上一篇:无
下一篇:实录手动部署Openstack Rocky 双节点(2)- Keystone

文章目录

  • 参考文档
  • 虚拟机准备
  • OS准备
    • controller虚拟机
    • compute虚拟机
  • DNS域名解析
    • controller虚拟机
    • compute虚拟机
  • 时间同步
    • controller虚拟机
    • compute虚拟机
  • YUM 仓库源
    • controller虚拟机
    • compute虚拟机
  • MySQL数据库 (controller-only)
    • controller虚拟机
  • RabbitMQ消息队列 (controller-only)
    • controller虚拟机
  • Memcached (controller-only)
    • controller虚拟机
  • etcd (controller-only)
    • controller虚拟机
  • 结语

参考文档

手动部署OpenStack Rocky双节点

虚拟机准备

两台虚拟机,每台虚拟机4G内存,各配三个网卡。

OS准备

controller虚拟机

安装CentOS 7.5.1804,内核版本3.10.0-862,机器名controller,3块网卡都是bridge模式,静态IP地址分别设置为:

name ip address memo
ens33 inet 172.18.22.231 Management & API Networking
ens37 inet 10.0.0.1 VM Network
ens38 inet 192.168.1.231 Access to Internet
[tony@controller ~]$ cat /etc/hostname
controller[tony@controller ~]$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)[tony@controller ~]$ uname -a
Linux controller 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux[tony@controller ~]$ ip addr
...
2: ens33: inet 172.18.22.231/16 ...
3: ens37: inet 10.0.0.1/8 ...
4: ens38: inet 192.168.1.231/24

compute虚拟机

安装CentOS 7.5.1804,内核版本3.10.0-862,机器名controller,3块网卡都是bridge模式,静态IP地址分别设置为:

name ip address memo
ens33 inet 172.18.22.232 Management & API Networking
ens37 inet 10.0.0.2 VM Network
ens38 inet 192.168.1.232 Access to Internet
[tony@compute ~]$ cat /etc/hostname
compute[tony@compute ~]$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)[tony@compute ~]$ uname -a
Linux compute 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux[tony@compute ~]$ ip addr
...
2: ens33: inet 172.18.22.232/16 ...
3: ens37: inet 10.0.0.2/8 ...
4: ens38: inet 192.168.1.232/24 ...

DNS域名解析

在两台虚拟机上都是用/etc/hosts域名解析机制。

controller虚拟机

[tony@controller ~]$ cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.18.22.231 controller
172.18.22.232 compute

# 确认能ping通
[tony@controller ~]$ ping compute

PING compute (172.18.22.232) 56(84) bytes of data.
64 bytes from compute (172.18.22.232): icmp_seq=1 ttl=64 time=0.346 ms
64 bytes from compute (172.18.22.232): icmp_seq=2 ttl=64 time=0.234 ms
64 bytes from compute (172.18.22.232): icmp_seq=3 ttl=64 time=0.292 ms

compute虚拟机

[tony@compute ~]$ cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.18.22.231 controller
172.18.22.232 compute

# 确认能ping通
[tony@compute ~]$ ping controller

PING controller (172.18.22.231) 56(84) bytes of data.
64 bytes from controller (172.18.22.231): icmp_seq=1 ttl=64 time=0.416 ms
64 bytes from controller (172.18.22.231): icmp_seq=2 ttl=64 time=0.250 ms
64 bytes from controller (172.18.22.231): icmp_seq=3 ttl=64 time=0.253 ms

时间同步

controller机器使用Internet时间服务更新机器时钟。compute机器则向controller请求时间服务。

controller虚拟机

  • 原始的/etc/chrony.conf文件。
[tony@controller ~]$ cat /etc/chrony.conf | grep -v ^# | grep -v ^$

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

  • 修改后的/etc/chrony.conf文件
[tony@controller ~]$ cat /etc/chrony.conf | grep -v ^# | grep -v ^$

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 172.18.22.0/24
logdir /var/log/chrony

  • 重启NTP服务
[tony@controller ~]$ sudo systemctl enable chronyd.service
[tony@controller ~]$ sudo systemctl restart chronyd.service
  • 检查chronyd的源
[tony@controller ~]$ sudo chronyc sources

210 Number of sources = 4
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 45.43.30.59 2 6 17 14 +1998us[+8871us] +/- 104ms
^+ 5.79.108.34 2 6 17 13 -3348us[-3348us] +/- 160ms
^? 185.209.85.222 0 6 0 - +0ns[ +0ns] +/- 0ns
^? 108.59.2.24 0 7 0 - +0ns[ +0ns] +/- 0ns

compute虚拟机

删除compute机器上原始的NTP源,新源设置为controller机器。

  • 原始的/etc/chrony.conf文件。
[tony@compute ~]$ cat /etc/chrony.conf | grep -v ^# | grep -v ^$

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

  • 修改后的/etc/chrony.conf文件
[tony@compute ~]$ cat /etc/chrony.conf | grep -v ^# | grep -v ^$

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
server controller iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

  • 重启NTP服务
[tony@compute ~]$ sudo systemctl enable chronyd.service
[tony@compute ~]$ sudo systemctl restart chronyd.service
  • 检查chronyd的源
[tony@compute ~]$ sudo chronyc sources

210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? controller 0 6 0 - +0ns[ +0ns] +/- 0ns

YUM 仓库源

在controller机器与compute机器上安装需要的包。两台机器上安装的包是一样的,命令参考如下:

yum install centos-release-openstack-rocky -y
yum upgrade -y
yum install python-openstackclient -y
yum install openstack-selinux -y

controller虚拟机

[tony@controller ~]$ sudo yum install -y centos-release-openstack-rocky# 这条命令会升级Centos,所以执行完毕后,重启一下机器
[tony@controller ~]$ sudo yum update -y
[tony@controller ~]$ sudo reboot# 升级完后内核版本从3.10.0-862变成了3.10.0-957
[tony@controller ~]$ uname -a
Linux controller 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux# 继续安装需要用的包
[tony@controller ~]$ sudo yum install -y python-openstackclient
[tony@controller ~]$ sudo yum install -y openstack-selinux

compute虚拟机

[tony@compute ~]$ sudo yum install -y centos-release-openstack-rocky# 这条命令会升级Centos,所以执行完毕后,重启一下机器
[tony@compute ~]$ sudo yum update -y
[tony@compute ~]$ sudo yum reboot# 升级完后内核版本从3.10.0-862变成了3.10.0-957
[tony@compute ~]$ uname -a
Linux compute 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux# 继续安装需要用的包
[tony@compute ~]$ sudo yum install -y python-openstackclient
[tony@compute ~]$ sudo yum install -y openstack-selinux

MySQL数据库 (controller-only)

只需要在controller机器上安装MySQL数据库。无需在compute机器上安装。

controller虚拟机

  • 安装数据库
[tony@controller ~]$ sudo yum install -y mariadb mariadb-server python2-PyMySQL
  • 创建配置文件
[tony@controller ~]$ sudo vim  /etc/my.cnf.d/openstack.cnf

插入如下配置

[mysqld]
bind-address = 172.18.22.231
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

  • 启动mariadb服务
# 检查mariadb服务,此时没有启动
[tony@controller ~]$ sudo systemctl status mariadb.service

● mariadb.service - MariaDB 10.1 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
Active: inactive (dead)

# 启用并启动服务
[tony@controller ~]$ sudo systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[tony@controller ~]$ sudo systemctl start mariadb.service
# 再次检查mariadb服务,已经启动成功
[tony@controller ~]$ sudo systemctl status mariadb.service

● mariadb.service - MariaDB 10.1 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-04-03 01:40:16 EDT; 8min ago
Process: 19726 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
Process: 19539 ExecStartPre=/usr/libexec/mysql-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Process: 19516 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
Main PID: 19699 (mysqld)
Status: “Taking your SQL requests now…”
CGroup: /system.slice/mariadb.service
└─19699 /usr/libexec/mysqld --basedir=/usr
 
Apr 03 01:40:15 controller mysql-prepare-db-dir[19539]: See the MariaDB Knowledgebase at http://mariadb.com/kb or the
Apr 03 01:40:15 controller mysql-prepare-db-dir[19539]: MySQL manual for more instructions.
Apr 03 01:40:15 controller mysql-prepare-db-dir[19539]: Please report any problems at http://mariadb.org/jira
Apr 03 01:40:15 controller mysql-prepare-db-dir[19539]: The latest information about MariaDB is available at http://mariadb.org/.
Apr 03 01:40:15 controller mysql-prepare-db-dir[19539]: You can find additional information about the MySQL part at:
Apr 03 01:40:15 controller mysql-prepare-db-dir[19539]: http://dev.mysql.com
Apr 03 01:40:15 controller mysql-prepare-db-dir[19539]: Consider joining MariaDB’s strong and vibrant community:
Apr 03 01:40:15 controller mysql-prepare-db-dir[19539]: https://mariadb.org/get-involved/
Apr 03 01:40:15 controller mysqld[19699]: 2019-04-03 1:40:15 139724687558848 [Note] /usr/libexec/mysqld (mysqld 10.1.20-MariaDB) starting as process 19699 …
Apr 03 01:40:16 controller systemd[1]: Started MariaDB 10.1 database server.

  • 初始化MySQL数据库密码
[tony@controller ~]$ mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here. <just press Enter>
 
Enter current password for root (enter for none):
OK, successfully used password, moving on…
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
 
Set root password? [Y/n] Y
New password: 输入密码
Re-enter new password: 输入密码
Password updated successfully!
Reloading privilege tables…
… Success!
 
 
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
 
Remove anonymous users? [Y/n] Y
… Success!
 
Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.
 
Disallow root login remotely? [Y/n] Y
… Success!
 
By default, MariaDB comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
 
Remove test database and access to it? [Y/n] Y

  • Dropping test database…
    … Success!
  • Removing privileges on test database…
    … Success!
     
    Reloading the privilege tables will ensure that all changes made so far
    will take effect immediately.
     
    Reload privilege tables now? [Y/n] Y
    … Success!
     
    Cleaning up…
     
    All done! If you’ve completed all of the above steps, your MariaDB
    installation should now be secure.
     
    Thanks for using MariaDB!
  • 修改MySQL参数
[tony@controller ~]$ cat /etc/my.cnf | grep -v ^$ | grep -v ^#

[client-server]
[mysqld]
symbolic-links=0
!includedir /etc/my.cnf.d

  • 新增加的参数设置
[tony@controller ~]$ cat /etc/my.cnf | grep -v ^$ | grep -v ^#

[client-server]
[mysqld]
symbolic-links=0
max_connections=1000
wait_timeout=5
!includedir /etc/my.cnf.d

  • 连接MySQL测试
[tony@controller ~]$ mysql -u root -p

Enter password:Enter password
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.1.20-MariaDB MariaDB Server
 
Copyright © 2000, 2016, Oracle, MariaDB Corporation Ab and others.
 
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
 
MariaDB [(none)]> quit
Bye

RabbitMQ消息队列 (controller-only)

controller虚拟机

  • 安装需要的包
[tony@controller ~]$ sudo yum install -y rabbitmq-server
  • 启用并启动RabbitMQ服务
[tony@controller ~]$ sudo systemctl enable rabbitmq-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.
[tony@controller ~]$ sudo systemctl start rabbitmq-server.service
  • 检查服务状态
[tony@controller ~]$ sudo systemctl status rabbitmq-server.service

● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-04-03 02:09:21 EDT; 7s ago
Main PID: 19955 (beam.smp)
Status: “Initialized”
CGroup: /system.slice/rabbitmq-server.service
├─19955 /usr/lib64/erlang/erts-8.3.5.3/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true – -root /usr/lib64/erlang -progname erl – -home /var/lib/rab…
├─20152 erl_child_setup 1024
├─20166 inet_gethost 4
└─20167 inet_gethost 4
 
Apr 03 02:09:18 controller systemd[1]: Starting RabbitMQ broker…
Apr 03 02:09:19 controller rabbitmq-server[19955]: RabbitMQ 3.6.16. Copyright © 2007-2018 Pivotal Software, Inc.
Apr 03 02:09:19 controller rabbitmq-server[19955]: ## ## Licensed under the MPL. See http://www.rabbitmq.com/
Apr 03 02:09:19 controller rabbitmq-server[19955]: ## ##
Apr 03 02:09:19 controller rabbitmq-server[19955]: ########## Logs: /var/log/rabbitmq/rabbit@controller.log
Apr 03 02:09:19 controller rabbitmq-server[19955]: ###### ## /var/log/rabbitmq/rabbit@controller-sasl.log
Apr 03 02:09:19 controller rabbitmq-server[19955]: ##########
Apr 03 02:09:19 controller rabbitmq-server[19955]: Starting broker…
Apr 03 02:09:21 controller systemd[1]: Started RabbitMQ broker.
Apr 03 02:09:22 controller rabbitmq-server[19955]: completed with 0 plugins.

  • 初始化RabbitMQ用户密码及权限
[tony@controller ~]$ sudo rabbitmqctl add_user openstack <$password>
Creating user "openstack"[tony@controller ~]$ sudo rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/"

Memcached (controller-only)

controller虚拟机

  • 安装需要的包
[tony@controller ~]$ sudo yum install -y memcached python-memcached
  • 原始配置文件
[tony@controller ~]$ cat /etc/sysconfig/memcached

PORT=“11211”
USER=“memcached”
MAXCONN=“1024”
CACHESIZE=“64”
OPTIONS="-l 127.0.0.1,::1"

  • 修改后配置文件
[tony@controller ~]$ cat /etc/sysconfig/memcached

PORT=“11211”
USER=“memcached”
MAXCONN=“1024”
CACHESIZE=“64”
# OPTIONS="-l 127.0.0.1,::1"
OPTIONS="-l 127.0.0.1,::1,controller"

etcd (controller-only)

controller虚拟机

  • 安装需要的包
[tony@controller ~]$ sudo yum install -y etcd
  • 原始配置文件
[tony@controller ~]$ cat /etc/etcd/etcd.conf | grep -v ^#[A-Z]

#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS=“http://localhost:2379”
ETCD_NAME=“default”
#
#[Clustering]
ETCD_ADVERTISE_CLIENT_URLS=“http://localhost:2379”
#
#[Proxy]

  • 修改后配置文件
[tony@controller ~]$ cat /etc/etcd/etcd.conf | grep -v ^#[A-Z]

#注意:下面出现IP地址的地方不可用机器名(controller)替换
#否则服务无法启动。
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS=“http://172.18.22.231:2380”
ETCD_LISTEN_CLIENT_URLS=“http://172.18.22.231:2379”
ETCD_NAME=“controller”
#
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS=“http://172.18.22.231:2380”
ETCD_ADVERTISE_CLIENT_URLS=“http://172.18.22.231:2379”
#
ETCD_INITIAL_CLUSTER=“controller=http://172.18.22.231:2380”
ETCD_INITIAL_CLUSTER_TOKEN=“etcd-cluster-01”
ETCD_INITIAL_CLUSTER_STATE=“new”
#
#
#[Proxy]

  • 启用并启动服务
[tony@controller ~]$ sudo systemctl enable etcd
Created symlink from /etc/systemd/system/multi-user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service.
[tony@controller ~]$ sudo systemctl start etcd
  • 检查服务状态
[tony@controller ~]$ sudo systemctl status etcd

● etcd.service - Etcd Server
Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-04-03 02:32:46 EDT; 36s ago
Main PID: 21710 (etcd)
CGroup: /system.slice/etcd.service
└─21710 /usr/bin/etcd --name=controller --data-dir=/var/lib/etcd/default.etcd --listen-client-urls=http://172.18.22.231:2379
 
Apr 03 02:32:46 controller etcd[21710]: 798aef148abaf70d received MsgVoteResp from 798aef148abaf70d at term 2
Apr 03 02:32:46 controller etcd[21710]: 798aef148abaf70d became leader at term 2
Apr 03 02:32:46 controller etcd[21710]: raft.node: 798aef148abaf70d elected leader 798aef148abaf70d at term 2
Apr 03 02:32:46 controller etcd[21710]: setting up the initial cluster version to 3.3
Apr 03 02:32:46 controller etcd[21710]: set the initial cluster version to 3.3
Apr 03 02:32:46 controller etcd[21710]: enabled capabilities for version 3.3
Apr 03 02:32:46 controller etcd[21710]: published {Name:controller ClientURLs:[http://172.18.22.231:2379]} to cluster 3cb3929e2d482e48
Apr 03 02:32:46 controller etcd[21710]: ready to serve client requests
Apr 03 02:32:46 controller etcd[21710]: serving insecure client requests on 172.18.22.231:2379, this is strongly discouraged!
Apr 03 02:32:46 controller systemd[1]: Started Etcd Server.

结语

OpenStack依赖的基础服务安装完毕。

第一篇:本文
上一篇:无
下一篇:实录手动部署Openstack Rocky 双节点(2)- Keystone

【Openstack】实录手动部署Openstack Rocky 双节点(1)- 基础服务相关推荐

  1. 【Openstack】实录手动部署Openstack Rocky 双节点(4)- Nova

    第一篇:实录手动部署Openstack Rocky 双节点(1)- 基础服务 上一篇:实录手动部署Openstack Rocky 双节点(3)- Glance 下一篇:实录手动部署Openstack ...

  2. 【Openstack】实录手动部署Openstack Rocky 双节点(3)- Glance

    第一篇:实录手动部署Openstack Rocky 双节点(1)- 基础服务 上一篇:实录手动部署Openstack Rocky 双节点(2)- Keystone 下一篇:手动部署Openstack ...

  3. 【Openstack】实录手动部署Openstack Rocky 双节点(2)- Keystone

    第一篇:实录手动部署Openstack Rocky 双节点(1)- 基础服务 上一篇:实录手动部署Openstack Rocky 双节点(1)- 基础服务 下一篇:手动部署Openstack Rock ...

  4. 【Openstack】实录手动部署Openstack Rocky 双节点(6)- Horizon

    第一篇:手动部署Openstack Rocky 双节点(1)- 基础服务 上一篇:手动部署Openstack Rocky 双节点(5)- Neutron 下一篇:无 文章目录 参考文档 关于机器名变更 ...

  5. 【Openstack】实录手动部署Openstack Rocky 双节点(5)- Neutron

    第一篇:手动部署Openstack Rocky 双节点(1)- 基础服务 上一篇:手动部署Openstack Rocky 双节点(4)- Nova 下一篇:手动部署Openstack Rocky 双节 ...

  6. 手动部署OpenStack之环境部署

    手动部署OpenStack之环境部署 一.虚拟机信息 二.基础环境配置 三.系统环境配置 一.虚拟机信息 1.控制节点ct CPU:双核双线程-CPU虚拟化开启 内存:8G 硬盘:300G+300G( ...

  7. 手动部署OpenStack环境(六:出现的问题与解决方案总结)

    排错一:keystone服务安装中demo用户表单没信息. 排错思路: 组件安装是否有问题: 用户创建畲缶有问题: 用户认证信息是否合适: 原因:用户的认证信息配置错误. 解决方案: a)删除有关de ...

  8. 手动部署OpenStack环境(四:安装控制器必备软件)

    任务四.安装控制器必备组件 4.1.安装MySQL服务(controller0) 4.2.安装Rabbitmq消息队列(controller0) 4.3.Keystone认证(controller0) ...

  9. 手动部署OpenStack环境(三:OpenStack环境预配置)

    任务三.OpenStack环境预配置 3.1.本地OpenStack yum源制作 任务三:OpenStack环境预配置 3.1.本地OpenStack yum 源制作 3.1.1.拷贝镜像文件源到本 ...

最新文章

  1. Elasticsearch搜索类型讲解(QUERY_THEN_FETCH,QUERY_AND_FEATCH,DFS_QUERY_THEN_FEATCH和DFS_QUERY_AND_FEATCH)...
  2. swift_037(Swift之Swift和OC混编)
  3. 运维调试记录:Opendaylight铍版本开发环境搭建流程
  4. 【MATLAB】数据类型 ( 执行代码 | 清空命令 | 注释 | 数字 | 字符 | 字符串 )
  5. 前后端数据交互的几个方法
  6. ShardingSphere RAW JDBC 分布式事务XA 代码示例
  7. Web服务器之Http压缩(GZip)
  8. HTML标记语言——文档标记设置
  9. 提取assemblyinfo.cs文件里的guid值
  10. 安卓 删除事件弹出消息框_微信更新,朋友圈可以删除好友评论了?网友:杠精终于可以删了...
  11. LINUX安装7Zip
  12. pycharm免安装版推荐
  13. Spring框架---全面详解【无比详细,学习总结】
  14. 计算机CPU风扇的功能及作用,CPU和风扇之间涂的是什么东西
  15. 程序猿怎样变身IT讲师
  16. android 人物走动_Android 中通过切割图片创建人物行走动画
  17. 媒体邀约得3个步骤和5个注意事项
  18. 金庸群侠X版 会议纪要
  19. 负数在计算机中的存储方式
  20. archetype-catalog

热门文章

  1. 查看mysql是否归档的命令_查看oracle数据库是否为归档模式
  2. * poj 3159 Candies 最短路 dijkstra堆优化
  3. WORD如何修改自动编号的起始编号值?
  4. python 模拟浏览器selenium_Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例...
  5. 编程实现Strassen矩阵乘法
  6. linux监听端口无响应,linux – tomcat运行,但是8080端口没有响应
  7. ROS中阶笔记(一):机器人系统设计—ROS系统下连接外部传感器
  8. 【windows】下Anaconda详细安装过程
  9. mysql 5.7 远程端口_ubuntu 16.04 mysql5.7.17 开放远程3306端口
  10. python内核死亡的原因_Kernel Panic常见原因以及解决方法