接着OpenStack(二)——使用Kolla部署OpenStack-allinone云平台继续操作。

  特别感谢https://www.cnblogs.com/openstackteam/p/5519961.html,Exsi虚拟机下网络不通卡了我半个月。特此说明:如果OpenStack的宿主机是Exsi创建的虚拟机,则必须进行如下操作,选中OpenStack所在的Esxi系统-->进入摘要-->选中OpenStack宿主机所使用的虚拟网卡-->右键,编辑设置-->选择设置页面的安全-->混杂模式、MAC地址更改、伪传输全部设置为接受。希望后来者不会再被坑了

(1).使用命令创建OpenStack云主机

 1)安装OpenStack客户端,方便使用命令行管理

[root@OpenStack240 ~]# pip install python-openstackclient  //pip安装OpenStack客户端
ERROR: Package 'more-itertools' requires a different Python: 2.7.5 not in '>=3.5'
[root@OpenStack240 ~]# pip install more-itertools==5.0.0
[root@OpenStack240 ~]# pip install python-openstackclient
ERROR: dogpile-cache 0.9.0 has requirement decorator>=4.0.0, but you'll have decorator 3.4.0 which is incompatible.
ERROR: Cannot uninstall 'ipaddress'. It is a distutils installed project and thus we cannot accurately determine which
files belong to it which would lead to only a partial uninstall.
[root@OpenStack240 ~]# pip install dogpile-cache
[root@OpenStack240 ~]# pip install --ignore-installed ipaddress
[root@OpenStack240 ~]# pip install python-openstackclient

  可以看到上面总共报了3个错误。第一个和第二个错误较为简单,只需要升级相应模块即可;第三个错误需要强制升级。

  注意1:在pip安装时遇到“ERROR: Package 'more-itertools' requires a different Python: 2.7.5 not in '>=3.5'”并不一定要升级python,也可以使用“pip install more-itertools==5.0.0”解决该问题。

  注意2:在pip安装时遇到“ERROR: Cannot uninstall '模块名'. It is a distutils installed...”时,需要使用“pip install --ignore-installed [报错的模块名]”安装,之后再重新pip安装。

 2)安装OpenStack网络相关命令

[root@OpenStack240 ~]# pip install python-neutronclient

  如果出现某个模块已安装的提示,可以使用“pip install --ignore-installed [模块]”来强制安装解决该问题。

 3)修改init-runonce脚本指定VIP地址范围,并使用该脚本创建OpenStack云项目

  修改init-runonce脚本

[root@OpenStack240 ~]# vim /usr/share/kolla-ansible/init-runonce
//修改第19~21行,是网卡ens33所接入的局域网地址
EXT_NET_CIDR='192.168.128.0/24'
EXT_NET_RANGE='start=192.168.128.200,end=192.168.128.210'  //取值范围
EXT_NET_GATEWAY='192.168.128.254'

  使用init-runonce脚本创建一个OpenStack云项目。注意:该init-runonce脚本只能运行一次,断开就不能再运行了

//查看是否存在,如果不存在运行kolla-ansible -i /etc/kolla/all-in-one post-deploy
[root@OpenStack240 ~]# ls /etc/kolla/admin-openrc.sh
/etc/kolla/admin-openrc.sh
[root@OpenStack240 ~]# source /etc/kolla/admin-openrc.sh  //加载到环境变量中
[root@OpenStack240 ~]# sh /usr/share/kolla-ansible/init-runonce  //执行init-runonce脚本
//成功后会提示执行以下命令,可能会不一样,但只要没有报错,执行就可以了
To deploy a demo instance, run: openstack server create \
--image cirros \
--flavor m1.tiny \
--key-name mykey \
--network demo-net \
demo1
//执行提示的命令
[root@OpenStack240 ~]# openstack server create \
> --image cirros \  //指定使用的镜像ID
> --flavor m1.tiny \  //指定使用的flavor名称
> --key-name mykey \  //指定key名称
> --network demo-net \  //指定网络名称
> demo1  //指定新建虚拟机的名称

  虚拟机默认账号密码在登录时会有提示,如下

  扩展:创建虚拟机命令中的参数可以到Web查看,当然也可以使用命令查看参数列表。确保加载了环境变量“source /etc/kolla/admin-openrc.sh”,才能使用以下命令。

//查看已有镜像ID
[root@OpenStack240 ~]# openstack image list
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| 3133fb61-24d2-4ee4-88d2-d7f4ae313ee4 | cirros | active |
+--------------------------------------+--------+--------+
[root@OpenStack240 ~]# glance image-list  //镜像管理组件glance
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
+--------------------------------------+--------+
| ID | Name |
+--------------------------------------+--------+
| 3133fb61-24d2-4ee4-88d2-d7f4ae313ee4 | cirros |
+--------------------------------------+--------+
//查看flavor
[root@OpenStack240 ~]# openstack network flavor list
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning) [root@OpenStack240 ~]# nova flavor-list  //计算管理组件nova
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
+----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name | Memory_MiB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description |
+----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+
| 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | - |
| 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | - |
| 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | - |
| 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | - |
| 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | - |
+----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+
//查看网络
[root@OpenStack240 ~]# openstack network list
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
+--------------------------------------+----------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+----------+--------------------------------------+
| 2de2f8e9-f134-4d92-8202-be9b45d09355 | demo-net | 3b52a206-72e8-4b0e-8c28-827619c62b90 |
| 8c73de34-f031-435a-9d80-ceaba6573d3e | public1 | 9d0c5344-d0de-465d-9eb3-65906d80d6e1 |
+--------------------------------------+----------+--------------------------------------+
[root@OpenStack240 ~]# neutron net-list  //网络组件neutron
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+----------+----------------------------------+-------------------------------------------------------+
| id | name | tenant_id | subnets |
+--------------------------------------+----------+----------------------------------+-------------------------------------------------------+
| 2de2f8e9-f134-4d92-8202-be9b45d09355 | demo-net | 7fff31018c7b4e0f82e9431c5c86e87c | 3b52a206-72e8-4b0e-8c28-827619c62b90 10.0.0.0/24 |
| 8c73de34-f031-435a-9d80-ceaba6573d3e | public1 | 7fff31018c7b4e0f82e9431c5c86e87c | 9d0c5344-d0de-465d-9eb3-65906d80d6e1 192.168.128.0/24 |
+--------------------------------------+----------+----------------------------------+-------------------------------------------------------+

  在以上没有错误的情况下,此时就可以到Web页面看到名为demo1的实例了(项目-->计算-->实例)。如下:

  剩下的配置可以通过Web页面进行配置。

 4)给云主机分配浮动IP地址

  在Web页面中选择:项目-->网络-->浮动IP-->分配IP给项目

  之后出出现如下页面,选择资源池,选填描述,点击分配IP

  创建成功后的浮动IP如下所示:

  另外可以通过项目-->网络-->网络拓扑查看网络拓扑结构,如下:

  还可以在项目-->网络-->网络查看网络信息,如下:

  最重要的绑定浮动IP步骤如下,在项目-->计算-->实例-->更多-->绑定浮动IP

  出现如下页面,选择IP地址和待连接的端口,进行关联

  最后如下:

(2).使用命令查看云主机项目信息和网络连通性

  要在确保加载了环境变量的情况下执行以下命令“source /etc/kolla/admin-openrc.sh”。

[root@OpenStack240 ~]# openstack router list
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
+--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+
| ID | Name | Status | State | Project | Distributed | HA |
+--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+
| f8e89ffc-89c4-4ae9-8a1a-f8d694997f5f | demo-router | ACTIVE | UP | 7fff31018c7b4e0f82e9431c5c86e87c | False | False |
+--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+
[root@OpenStack240 ~]# openstack router show demo-router
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | nova |
| created_at | 2019-11-30T08:37:36Z |
| description | |
| distributed | False |
| external_gateway_info | {"network_id": "8c73de34-f031-435a-9d80-ceaba6573d3e", "enable_snat": true, "external_fixed_ips": [{"subnet_id": "9d0c5344-d0de-465d-9eb3-65906d80d6e1", "ip_address": "192.168.128.206"}]} |
| flavor_id | None |
| ha | False |
| id | f8e89ffc-89c4-4ae9-8a1a-f8d694997f5f |
| interfaces_info | [{"subnet_id": "3b52a206-72e8-4b0e-8c28-827619c62b90", "ip_address": "10.0.0.1", "port_id": "a15eefcc-f85c-4ea9-8b89-c6e35047b4aa"}] |
| location | cloud='', project.domain_id=, project.domain_name='Default', project.id='7fff31018c7b4e0f82e9431c5c86e87c', project.name='admin', region_name='RegionOne', zone= |
| name | demo-router |
| project_id | 7fff31018c7b4e0f82e9431c5c86e87c |
| revision_number | 4 |
| routes | |
| status | ACTIVE |
| tags | |
| updated_at | 2019-11-30T08:37:47Z |
+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[root@OpenStack240 ~]# openstack network list  //查看网络信息
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
+--------------------------------------+----------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+----------+--------------------------------------+
| 2de2f8e9-f134-4d92-8202-be9b45d09355 | demo-net | 3b52a206-72e8-4b0e-8c28-827619c62b90 |
| 8c73de34-f031-435a-9d80-ceaba6573d3e | public1 | 9d0c5344-d0de-465d-9eb3-65906d80d6e1 |
+--------------------------------------+----------+--------------------------------------+
[root@OpenStack240 ~]# openstack subnet list  //查看子网信息
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7)
or chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
+--------------------------------------+----------------+--------------------------------------+------------------+
| ID | Name | Network | Subnet |
+--------------------------------------+----------------+--------------------------------------+------------------+
| 3b52a206-72e8-4b0e-8c28-827619c62b90 | demo-subnet | 2de2f8e9-f134-4d92-8202-be9b45d09355 | 10.0.0.0/24 |
| 9d0c5344-d0de-465d-9eb3-65906d80d6e1 | public1-subnet | 8c73de34-f031-435a-9d80-ceaba6573d3e | 192.168.128.0/24 |
+--------------------------------------+----------------+--------------------------------------+------------------+
[root@OpenStack240 ~]# openstack server show demo1  //查看云主机实例信息
/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or
chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
+-------------------------------------+----------------------------------------------------------+
| Field | Value |
+-------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | nova |
| OS-EXT-SRV-ATTR:host | OpenStack240 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | OpenStack240 |
| OS-EXT-SRV-ATTR:instance_name | instance-00000001 |
| OS-EXT-STS:power_state | Running |
| OS-EXT-STS:task_state | None |
| OS-EXT-STS:vm_state | active |
| OS-SRV-USG:launched_at | 2019-11-30T08:40:18.000000 |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | demo-net=10.0.0.45, 192.168.128.203 |
| config_drive | |
| created | 2019-11-30T08:39:45Z |
| flavor | m1.tiny (1) |
| hostId | d6416488e7208ea8095807bf5c7dd880b962d890292ba8f8940697f2 |
| id | c90e4476-ec3f-44d2-8041-58c65a65e6dc |
| image | cirros (3133fb61-24d2-4ee4-88d2-d7f4ae313ee4) |
| key_name | mykey |
| name | demo1 |
| progress | 0 |
| project_id | 7fff31018c7b4e0f82e9431c5c86e87c |
| properties | |
| security_groups | name='default' |
| status | ACTIVE |
| updated | 2019-11-30T08:40:18Z |
| user_id | b46452d885d14cb78fb4640ed8672ffe |
| volumes_attached | |
+-------------------------------------+----------------------------------------------------------+

(3).使用Web界面创建OpenStack云主机

 1)创建一个OpenStack全新的项目,并分配给一个新用户

  创建一个名为testuser的用户,身份管理-->用户-->创建用户-->填写用户名和密码-->创建用户

  创建一个名为test的项目,身份管理-->项目-->创建项目-->填写项目名称-->转到项目成员-->通过左侧的加号将testuser加入右边,并选择成员的角色-->创建项目。项目组类似用户组的作用,根据需求使用。

  查看项目的配额,根据需求修改。身份管理-->项目-->修改配额-->编辑计算里的实例、VCPU数量和内存(物理机CPU4核,内存16G)-->转到网络-->修改浮动IP-->保存。

  另外,还可以回到身份管理-->用户-->testuser的编辑-->将test项目作为testuser的主项目

  此时我们就可以转到testuser用户下进行操作。

 2)创建实例类型

  创建一个新的实例类型,在创建实例时选择不同的实例类型分配设置好的资源大小,管理员-->计算-->实例类型-->创建实例类型-->填写名称、VCPU数量、内存和根磁盘-->创建实例类型。注意:设置的VCPU数量、内存和根磁盘必须小于物理机剩余资源。

  说明:临时磁盘是指除根磁盘(系统盘)和Swap磁盘之外的磁盘,可以将其当作数据盘。

 3)上传镜像

  这里以cirros镜像作为例子,下载地址http://download.cirros-cloud.net/0.4.0/,下载cirros-0.4.0-[系统架构]-disk.img。现在完成后通过网页创建镜像,管理员-->计算-->镜像-->创建镜像-->填写镜像名称,选择镜像文件地址,选择镜像格式-->创建镜像,元数据根据需求进行修改。注意:cirros镜像默认格式为qcow2格式

 4)创建两个网络:内网和外网

  创建内网in,管理员-->网络-->网络-->创建网络-->填写名称,选择项目和供应商网络类型,填写段ID-->当创建子网被选中时,点击下一项进入创建子网页面-->填写子网相关信息,点击下一项-->选中激活DHCP,填写相关信息,点击创建。

  创建外网out,管理员-->网络-->网络-->创建网络-->填写名称,选择项目和供应商网络类型,填写物理网络,勾选外部网络,点击下一项-->填写子网相关信息,点击下一项-->取消激活DHCP,填写相关信息,点击创建。注意:(基于供应商网络为flat下)物理网络需要是ml2_conf.ini文件中的参数“flat_networks = physnet1”,使用kolla安装的请查看/etc/kolla/neutron-openvswitch-agent/ml2_conf.ini,完整安装的请查看/etc/neutron/plugins/ml2/ml2_conf.ini。

  创建完成后可以到项目-->网络-->网络拓扑中查看。

 5)创建路由,连接内外网络

  创建一个路由连接内外网络,管理员-->网络-->路由-->创建路由-->填写路由名称、选择项目和外部网络-->新建路由。

  此时虚拟路由与out网络连接,但还没有与in网络连接,可以在网络拓扑中明显看出

  所以现在需要是路由与in网络连接,管理员-->网络-->路由-->点击路由的名称,进入到内部编辑页面-->接口-->添加接口-->选择子网,填写IP地址-->提交

  等待几秒查看两个接口的状态是否是运行中,然后再看网络拓扑

 6)创建专属安全组

  默认存在一个default安全组,规则为全部放行,实际使用中并不会如此使用,这里创建一个ssh-ping安全组,只放行TCP协议22端口(ssh)和所有ICMP协议(ping)。

  创建名为ssh-ping的安全组,项目-->网络-->安全组-->创建安全组-->填写名称-->创建安全组。

  编辑ssh-ping安全组的规则,项目-->网络-->安全组-->管理规则,进入管理规则页面-->添加规则-->填写相关信息-->添加。注意:0.0.0.0/0表示所有IP

 7)创建专属密钥对

  创建一个专属密钥对,项目-->计算-->密钥对-->创建密钥对-->填写密钥对名称,选择密钥类型-->创建密钥对。

  密钥可以点击密钥旁的小箭头查看,或点击密钥名称查看

 8)分配浮动IP(外网IP)

  准备一个浮动IP(外网IP),项目-->网络-->浮动IP-->分配IP给项目-->选择资源池-->分配IP

 9)创建实例

  准备工作全部完成后终于可以创建实例了,项目-->计算-->实例-->创建实例-->填写实例名称和数量-->点击下一项,进入源页面-->选择源,将其中一个移动到上方-->点击下一项,进入实例类型页面-->将其中一个实例类型移动到上方-->点击下一项,进入网络页面-->选择内网-->网络接口默认即可,直接跳到安全组-->调整安全组、密钥对和其他配置-->创建实例

  最后绑定浮动IP,

参考:https://blog.csdn.net/chenwei8280/article/details/79601885

   https://blog.csdn.net/chenwei8280/article/details/80876451

   https://blog.csdn.net/Poo_Chai/article/details/80858428

   https://www.cnblogs.com/daisyyang/p/11093585.html

OpenStack(三)——allinone云平台的使用方法的更多相关文章

  1. 搭建OpenStack先电云平台

    实际操作示意图 在VMware里面创建两台centos7的虚拟机作为搭建云平台的两节点配置如下: 1.第一台虚拟机   作为控制节点 2CPU 3G以上内存 硬盘50G 网络适配器一个nat 一个仅主 ...

  2. Discuz! X3.1直接进入云平台列表的方法

    Discuz! X3.1已经改版,后台不能直接进云平台列表,不方便操作,操作云平台服务时,大家可以这样操作: 1.登录后台:2.访问域名进入云平台列表http://你域名/admin.php?fram ...

  3. openStack telemetry/ceilometry 云平台资源监控度量

  4. 干货 | 手把手教你搭建一套OpenStack云平台

    1 前言 今天我们为一位朋友搭建一套OpenStack云平台. 我们使用Kolla部署stein版本的OpenStack云平台. kolla是用于自动化部署OpenStack的一个项目,它基于dock ...

  5. Kolla部署Pike版本的OpenStack-allinone云平台

    1 openstack 概述 openstack概述 : OpenStack是一个NASA美国国家航空航天局和Rackspace合作研发 的,以Apache许可证授权,并且是一个自由软件和开放源代码项 ...

  6. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

    公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...

  7. 搭建Openstack云平台

    实验室需要做一个大数据平台项目,临时接下需要部署实验室云平台的任务,由于之前没有接触过相关技术,仅以此篇作为纪录文,记录一下我的openstack的初步学习以及搭建过程. 1.openstcak及其组 ...

  8. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置

    继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...

  9. OpenStack(二)——使用Kolla部署OpenStack-allinone云平台

    (1).Kolla概述 Kolla是OpenStack下用于自动化部署的一个项目,它基于docker和ansible来实现,其中docker主要负责镜像制作和容器管理,ansible主要负责环境的部署 ...

随机推荐

  1. 如果centos7添加新网卡,系统不识别的解决办法

    #ifconfig 2.获取新增网卡的真实mac #ip addr 3.复制eth0到eth1并修改配置文件 #cd /etc/sysconfig/network-scripts #cp ifcfg- ...

  2. 【 BowWow and the Timetable CodeForces - 1204A 】【思维】

    题目链接 可以发现 十进制4 对应 二进制100 十进制16 对应 二进制10000 十进制64 对应 二进制1000000 可以发现每多两个零,4的次幂就增加1. 用string读入题目给定的二进制 ...

  3. excel打开提示 文件格式和扩展名不匹配。文件可能已损坏或不安全。除非您信任其来源,否则请勿打开。是否仍要打开它?

    有的时候打开xls文档时,会提示“文件格式和扩展名不匹配.文件可能已损坏或不安全.除非您信任其来源,否则请勿打开.是否仍要打开它?” 遇到这种情况,我们需要 打开“注册表编辑器” win键+R键,打开 ...

  4. drf常用方法

    1.认证 2.权限 3.序列化 4.分页 5.限流

  5. There is insufficient memory for the Java Runtime Environment to continue.

    There is insufficient memory for the Java Runtime Environment to continue.

  6. 【CF241E】Flights

    [CF241E]Flights 题面 洛谷 题解 对于原来的图,如果一条边不出现在\(1\)到\(n\)的路径上面,直接\(ban\)掉即可. 那么考虑一条边\(u\rightarrow v\),一定 ...

  7. nuxt项目服务端渲染应用部署、使用pm2守护进程及遇到的问题处理

    服务端渲染应用部署应该先编译构建,然后再启动 Nuxt 服务,可通过以下两个命令来完成: nuxt build nuxt start 我们已经在pakage.json里配置好script命令 { &q ...

  8. 大厂HR面试必备ES6中的深入浅出面试题知识点

    ESMAScript6简介,ES6是JavaScript语言的下一代标准,目的是让JavaScript语言可以写复杂的大型应用程序,成为企业级语言.那么ECMAScript和JavaScript的关系 ...

  9. UDF——已知入口压力和流量计算压降

    有时候我们在计算内流,比如管道内的流动时,只知道入口压力和流量,而我们想要计算得到出口的压力,这个应该怎么办呢?当然新版本的Fluent已经自带了流量出口边界,而这里我们采用Fluent的UDF来实现 ...

  10. Java对姓名, 手机号, 身份证号, 地址进行脱敏

    替换几位就用几个*号 一.姓名 1, 脱敏规则: 只显示第一个汉字,比如李某某置换为李**, 李某置换为李* private static String desensitizedName(String ...