Centos7 install Openstack Juno (RDO) (转载)
原文地址:http://www.hdume.com/centos-7-0%E5%AE%89%E8%A3%85openstack/
1、安装系统,Centos7镜像采用CentOS-7.0-1406-x86_64-Minimal.iso
分区/、boot、swap,然后单独拿出一个分区,供cinder使用。
2、系统环境准备工作
- yum install -y net-tools wget screen
- [root@juno ~]# more /etc/hosts
- 127.0.0.1 juno localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 192.168.3.97 juno
- [root@juno yum.repos.d]# more /etc/resolv.conf
- # Generated by NetworkManager
- nameserver 8.8.8.8
- [root@juno yum.repos.d]# cd /etc/sysconfig/network-scripts/
- vi ifcfg-enp3s0
- vi ifcfg-enp5s2
- [root@juno network-scripts]# more /etc/sysconfig/network
- # Created by anaconda
- NETWORKING=yes
- HOSTNAME=juno
- GATEWAY=192.168.3.1
- [root@juno yum.repos.d]# systemctl disable NetworkManager
- rm '/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service'
- rm '/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service'
- rm '/etc/systemd/system/multi-user.target.wants/NetworkManager.service'
- [root@juno yum.repos.d]# systemctl stop NetworkManager
- vi /etc/selinux/config # SELINUX=enforcing SELINUX=disabled
- setenforce 0
- yum install -y lvm2
- [root@juno ~]# df -h
- /dev/sda2 855G 1.2G 810G 1% /
- devtmpfs 7.7G 0 7.7G 0% /dev
- tmpfs 7.7G 0 7.7G 0% /dev/shm
- tmpfs 7.7G 8.6M 7.7G 1% /run
- tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup
- /dev/sda5 48G 53M 46G 1% /data
- /dev/sda1 190M 106M 71M 61% /boot
- [root@juno ~]# umount /dev/sda5
- [root@juno ~]# pvcreate /dev/sda5
- Physical volume "/dev/sda5" successfully created
- [root@juno ~]# vgcreate cinder-volumes /dev/sda5
- Volume group "cinder-volumes" successfully created
- 去掉/dev/sda5在/etc/fstab中的启动项
3、准备rdo安装环境
- yum install -y http://rdo.fedorapeople.org/openstack-juno/rdo-release-juno.rpm #会在/etc/yum.repos.d目录增加rdo-release.repo源文件。
- yum install -y openstack-packstack
- [root@juno yum.repos.d]# more /etc/redhat-release
- CentOS Linux release 7.0.1406 (Core)
- [root@juno yum.repos.d]# yum update -y #会在/etc/yum.repos.d目录增加CentOS-fasttrack.repo源文件。
- 更新完系统,执行重启
- reboot
- [root@juno ~]# packstack --gen-answer-file=juno.txt 创建应答文件
- Packstack changed given value to required value /root/.ssh/id_rsa.pub
4、修改应答文件,因为测试环境所限,我是单独节点安装所有模块测试,网络模式采用VLAN,应答文件如下
- [root@juno ~]# more juno.txt |grep "^\s*[^# \g].*$" |more
- [general]
- CONFIG_SSH_KEY=/root/.ssh/id_rsa.pub
- CONFIG_DEFAULT_PASSWORD=
- CONFIG_MARIADB_INSTALL=y
- CONFIG_GLANCE_INSTALL=y
- CONFIG_CINDER_INSTALL=y
- CONFIG_NOVA_INSTALL=y
- CONFIG_NEUTRON_INSTALL=y
- CONFIG_HORIZON_INSTALL=y
- CONFIG_SWIFT_INSTALL=y
- CONFIG_CEILOMETER_INSTALL=y
- CONFIG_HEAT_INSTALL=y
- CONFIG_SAHARA_INSTALL=y
- CONFIG_TROVE_INSTALL=y
- CONFIG_IRONIC_INSTALL=n
- CONFIG_CLIENT_INSTALL=y
- CONFIG_NTP_SERVERS=
- CONFIG_NAGIOS_INSTALL=y
- EXCLUDE_SERVERS=
- CONFIG_DEBUG_MODE=n
- CONFIG_CONTROLLER_HOST=192.168.3.97
- CONFIG_COMPUTE_HOSTS=192.168.3.97
- CONFIG_NETWORK_HOSTS=192.168.3.97
- CONFIG_VMWARE_BACKEND=n
- CONFIG_UNSUPPORTED=n
- CONFIG_VCENTER_HOST=
- CONFIG_VCENTER_USER=
- CONFIG_VCENTER_PASSWORD=
- CONFIG_VCENTER_CLUSTER_NAME=
- CONFIG_STORAGE_HOST=192.168.3.97
- CONFIG_SAHARA_HOST=192.168.3.97
- CONFIG_USE_EPEL=n
- CONFIG_REPO=
- CONFIG_RH_USER=
- CONFIG_SATELLITE_URL=
- CONFIG_RH_PW=
- CONFIG_RH_OPTIONAL=y
- CONFIG_RH_PROXY=
- CONFIG_RH_PROXY_PORT=
- CONFIG_RH_PROXY_USER=
- CONFIG_RH_PROXY_PW=
- CONFIG_SATELLITE_USER=
- CONFIG_SATELLITE_PW=
- CONFIG_SATELLITE_AKEY=
- CONFIG_SATELLITE_CACERT=
- CONFIG_SATELLITE_PROFILE=
- CONFIG_SATELLITE_FLAGS=
- CONFIG_SATELLITE_PROXY=
- CONFIG_SATELLITE_PROXY_USER=
- CONFIG_SATELLITE_PROXY_PW=
- CONFIG_AMQP_BACKEND=rabbitmq
- CONFIG_AMQP_HOST=192.168.3.97
- CONFIG_AMQP_ENABLE_SSL=n
- CONFIG_AMQP_ENABLE_AUTH=n
- CONFIG_AMQP_NSS_CERTDB_PW=PW_PLACEHOLDER
- CONFIG_AMQP_SSL_PORT=5671
- CONFIG_AMQP_SSL_CERT_FILE=/etc/pki/tls/certs/amqp_selfcert.pem
- CONFIG_AMQP_SSL_KEY_FILE=/etc/pki/tls/private/amqp_selfkey.pem
- CONFIG_AMQP_SSL_SELF_SIGNED=y
- CONFIG_AMQP_AUTH_USER=amqp_user
- CONFIG_AMQP_AUTH_PASSWORD=PW_PLACEHOLDER
- CONFIG_MARIADB_HOST=192.168.3.97
- CONFIG_MARIADB_USER=root
- CONFIG_MARIADB_PW=admin
- CONFIG_KEYSTONE_DB_PW=78d5d08b30644917
- CONFIG_KEYSTONE_REGION=RegionOne
- CONFIG_KEYSTONE_ADMIN_TOKEN=3871e97281ce498484702b2b3736984e
- CONFIG_KEYSTONE_ADMIN_PW=admin
- CONFIG_KEYSTONE_DEMO_PW=c94e522543e146ff
- CONFIG_KEYSTONE_TOKEN_FORMAT=UUID
- CONFIG_KEYSTONE_SERVICE_NAME=keystone
- CONFIG_GLANCE_DB_PW=dca7672288cd48e0
- CONFIG_GLANCE_KS_PW=375af473510a40f2
- CONFIG_GLANCE_BACKEND=file
- CONFIG_CINDER_DB_PW=cf3507ecc6f649cb
- CONFIG_CINDER_KS_PW=6b342a947f1a4bbd
- CONFIG_CINDER_BACKEND=lvm
- CONFIG_CINDER_VOLUMES_CREATE=n
- CONFIG_CINDER_VOLUMES_SIZE=20G
- CONFIG_CINDER_GLUSTER_MOUNTS=
- CONFIG_CINDER_NFS_MOUNTS=
- CONFIG_CINDER_NETAPP_LOGIN=
- CONFIG_CINDER_NETAPP_PASSWORD=
- CONFIG_CINDER_NETAPP_HOSTNAME=
- CONFIG_CINDER_NETAPP_SERVER_PORT=80
- CONFIG_CINDER_NETAPP_STORAGE_FAMILY=ontap_cluster
- CONFIG_CINDER_NETAPP_TRANSPORT_TYPE=http
- CONFIG_CINDER_NETAPP_STORAGE_PROTOCOL=nfs
- CONFIG_CINDER_NETAPP_SIZE_MULTIPLIER=1.0
- CONFIG_CINDER_NETAPP_EXPIRY_THRES_MINUTES=720
- CONFIG_CINDER_NETAPP_THRES_AVL_SIZE_PERC_START=20
- CONFIG_CINDER_NETAPP_THRES_AVL_SIZE_PERC_STOP=60
- CONFIG_CINDER_NETAPP_NFS_SHARES_CONFIG=
- CONFIG_CINDER_NETAPP_VOLUME_LIST=
- CONFIG_CINDER_NETAPP_VFILER=
- CONFIG_CINDER_NETAPP_VSERVER=
- CONFIG_CINDER_NETAPP_CONTROLLER_IPS=
- CONFIG_CINDER_NETAPP_SA_PASSWORD=
- CONFIG_CINDER_NETAPP_WEBSERVICE_PATH=/devmgr/v2
- CONFIG_CINDER_NETAPP_STORAGE_POOLS=
- CONFIG_IRONIC_DB_PW=PW_PLACEHOLDER
- CONFIG_IRONIC_KS_PW=PW_PLACEHOLDER
- CONFIG_NOVA_DB_PW=c2f2d1bc94814b8e
- CONFIG_NOVA_KS_PW=6886922f1e6a4cf7
- CONFIG_NOVA_SCHED_CPU_ALLOC_RATIO=16.0
- CONFIG_NOVA_SCHED_RAM_ALLOC_RATIO=1.5
- CONFIG_NOVA_COMPUTE_MIGRATE_PROTOCOL=tcp
- CONFIG_NOVA_COMPUTE_MANAGER=nova.compute.manager.ComputeManager
- CONFIG_NOVA_COMPUTE_PRIVIF=eth1
- CONFIG_NOVA_NETWORK_MANAGER=nova.network.manager.FlatDHCPManager
- CONFIG_NOVA_NETWORK_PUBIF=eth0
- CONFIG_NOVA_NETWORK_PRIVIF=eth1
- CONFIG_NOVA_NETWORK_FIXEDRANGE=192.168.32.0/22
- CONFIG_NOVA_NETWORK_FLOATRANGE=10.3.4.0/22
- CONFIG_NOVA_NETWORK_AUTOASSIGNFLOATINGIP=n
- CONFIG_NOVA_NETWORK_VLAN_START=100
- CONFIG_NOVA_NETWORK_NUMBER=1
- CONFIG_NOVA_NETWORK_SIZE=255
- CONFIG_NEUTRON_KS_PW=7fd81ee3de7b41b1
- CONFIG_NEUTRON_DB_PW=e19456a13e434acb
- CONFIG_NEUTRON_L3_EXT_BRIDGE=br-ex
- CONFIG_NEUTRON_METADATA_PW=fb5fa018c53646d3
- CONFIG_LBAAS_INSTALL=y
- CONFIG_NEUTRON_METERING_AGENT_INSTALL=y
- CONFIG_NEUTRON_FWAAS=y
- CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vlan
- CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vlan
- CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch
- CONFIG_NEUTRON_ML2_FLAT_NETWORKS=*
- CONFIG_NEUTRON_ML2_VLAN_RANGES=physnet1:100:200
- CONFIG_NEUTRON_ML2_TUNNEL_ID_RANGES=
- CONFIG_NEUTRON_ML2_VXLAN_GROUP=
- CONFIG_NEUTRON_ML2_VNI_RANGES=100:200
- CONFIG_NEUTRON_L2_AGENT=openvswitch
- CONFIG_NEUTRON_LB_INTERFACE_MAPPINGS=
- CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-enp5s2
- CONFIG_NEUTRON_OVS_BRIDGE_IFACES=
- CONFIG_NEUTRON_OVS_TUNNEL_IF=enp5s2
- CONFIG_NEUTRON_OVS_VXLAN_UDP_PORT=4789
- CONFIG_HORIZON_SSL=n
- CONFIG_SSL_CERT=
- CONFIG_SSL_KEY=
- CONFIG_SSL_CACHAIN=
- CONFIG_SWIFT_KS_PW=0d90462a1e2e4c14
- CONFIG_SWIFT_STORAGES=
- CONFIG_SWIFT_STORAGE_ZONES=1
- CONFIG_SWIFT_STORAGE_REPLICAS=1
- CONFIG_SWIFT_STORAGE_FSTYPE=ext4
- CONFIG_SWIFT_HASH=1d5b883396514de8
- CONFIG_SWIFT_STORAGE_SIZE=20G
- CONFIG_HEAT_DB_PW=PW_PLACEHOLDER
- CONFIG_HEAT_AUTH_ENC_KEY=0cae8679b6dd4a31
- CONFIG_HEAT_KS_PW=PW_PLACEHOLDER
- CONFIG_HEAT_CLOUDWATCH_INSTALL=y
- CONFIG_HEAT_CFN_INSTALL=y
- CONFIG_HEAT_DOMAIN=heat
- CONFIG_HEAT_DOMAIN_ADMIN=heat_admin
- CONFIG_HEAT_DOMAIN_PASSWORD=PW_PLACEHOLDER
- CONFIG_PROVISION_DEMO=n
- CONFIG_PROVISION_TEMPEST=n
- CONFIG_PROVISION_TEMPEST_USER=
- CONFIG_PROVISION_TEMPEST_USER_PW=403fa0c693484e25
- CONFIG_PROVISION_DEMO_FLOATRANGE=172.24.4.224/28
- CONFIG_PROVISION_CIRROS_URL=http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
- CONFIG_PROVISION_TEMPEST_REPO_URI=https://github.com/openstack/tempest.git
- CONFIG_PROVISION_TEMPEST_REPO_REVISION=master
- CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE=n
- CONFIG_SAHARA_DB_PW=PW_PLACEHOLDER
- CONFIG_SAHARA_KS_PW=PW_PLACEHOLDER
- CONFIG_CEILOMETER_SECRET=a43e0ca10abb412c
- CONFIG_CEILOMETER_KS_PW=77a5276982054c8a
- CONFIG_CEILOMETER_COORDINATION_BACKEND=redis
- CONFIG_MONGODB_HOST=192.168.3.97
- CONFIG_REDIS_HOST=192.168.3.97
- CONFIG_REDIS_PORT=6379
- CONFIG_TROVE_DB_PW=PW_PLACEHOLDER
- CONFIG_TROVE_KS_PW=PW_PLACEHOLDER
- CONFIG_TROVE_NOVA_USER=admin
- CONFIG_TROVE_NOVA_TENANT=services
- CONFIG_TROVE_NOVA_PW=PW_PLACEHOLDER
- CONFIG_NAGIOS_PW=admin
- [root@juno ~]#
5、执行安装
- screen packstack --answer-file=juno.txt #会在/etc/yum.repos.d目录增加epel-testing.repo和epel.repo源文件
6、安装过程输出
- [root@juno ~]# screen packstack --answer-file=juno.txt
- Welcome to the Packstack setup utility
- The installation log file is available at: /var/tmp/packstack/20150114-101431-ohUx_Z/openstack-setup.log
- Installing:
- Clean Up [ DONE ]
- Setting up ssh keys [ DONE ]
- Discovering hosts' details [ DONE ]
- Adding pre install manifest entries [ DONE ]
- Preparing servers [ DONE ]
- Adding AMQP manifest entries [ DONE ]
- Adding MariaDB manifest entries [ DONE ]
- Adding Keystone manifest entries [ DONE ]
- Adding Glance Keystone manifest entries [ DONE ]
- Adding Glance manifest entries [ DONE ]
- Adding Cinder Keystone manifest entries [ DONE ]
- Checking if the Cinder server has a cinder-volumes vg[ DONE ]
- Adding Cinder manifest entries [ DONE ]
- Adding Nova API manifest entries [ DONE ]
- Adding Nova Keystone manifest entries [ DONE ]
- Adding Nova Cert manifest entries [ DONE ]
- Adding Nova Conductor manifest entries [ DONE ]
- Creating ssh keys for Nova migration [ DONE ]
- Gathering ssh host keys for Nova migration [ DONE ]
- Adding Nova Compute manifest entries [ DONE ]
- Adding Nova Scheduler manifest entries [ DONE ]
- Adding Nova VNC Proxy manifest entries [ DONE ]
- Adding OpenStack Network-related Nova manifest entries[ DONE ]
- Adding Nova Common manifest entries [ DONE ]
- Adding Neutron API manifest entries [ DONE ]
- Adding Neutron Keystone manifest entries [ DONE ]
- Adding Neutron L3 manifest entries [ DONE ]
- Adding Neutron L2 Agent manifest entries [ DONE ]
- Adding Neutron DHCP Agent manifest entries [ DONE ]
- Adding Neutron LBaaS Agent manifest entries [ DONE ]
- Adding Neutron Metering Agent manifest entries [ DONE ]
- Adding Neutron Metadata Agent manifest entries [ DONE ]
- Checking if NetworkManager is enabled and running [ DONE ]
- Adding OpenStack Client manifest entries [ DONE ]
- Adding Horizon manifest entries [ DONE ]
- Adding Swift Keystone manifest entries [ DONE ]
- Adding Swift builder manifest entries [ DONE ]
- Adding Swift proxy manifest entries [ DONE ]
- Adding Swift storage manifest entries [ DONE ]
- Adding Swift common manifest entries [ DONE ]
- Adding Heat manifest entries [ DONE ]
- Adding Heat Keystone manifest entries [ DONE ]
- Adding Heat CloudWatch API manifest entries [ DONE ]
- Adding Heat CloudFormation API manifest entries [ DONE ]
- Adding Sahara Keystone manifest entries [ DONE ]
- Adding Sahara manifest entries [ DONE ]
- Adding MongoDB manifest entries [ DONE ]
- Adding Redis manifest entries [ DONE ]
- Adding Ceilometer manifest entries [ DONE ]
- Adding Ceilometer Keystone manifest entries [ DONE ]
- Adding Trove Keystone manifest entries [ DONE ]
- Adding Trove manifest entries [ DONE ]
- Adding Nagios server manifest entries [ DONE ]
- Adding Nagios host manifest entries [ DONE ]
- Adding post install manifest entries [ DONE ]
- Installing Dependencies [ DONE ]
- Copying Puppet modules and manifests [ DONE ]
- Applying 192.168.3.97_prescript.pp
- 192.168.3.97_prescript.pp: [ DONE ]
- Applying 192.168.3.97_amqp.pp
- Applying 192.168.3.97_mariadb.pp
- 192.168.3.97_amqp.pp: [ DONE ]
- 192.168.3.97_mariadb.pp: [ DONE ]
- Applying 192.168.3.97_keystone.pp
- Applying 192.168.3.97_glance.pp
- Applying 192.168.3.97_cinder.pp
- 192.168.3.97_keystone.pp: [ DONE ]
- 192.168.3.97_glance.pp: [ DONE ]
- 192.168.3.97_cinder.pp: [ DONE ]
- Applying 192.168.3.97_api_nova.pp
- 192.168.3.97_api_nova.pp: [ DONE ]
- Applying 192.168.3.97_nova.pp
- 192.168.3.97_nova.pp: [ DONE ]
- Applying 192.168.3.97_neutron.pp
- 192.168.3.97_neutron.pp: [ DONE ]
- Applying 192.168.3.97_osclient.pp
- Applying 192.168.3.97_horizon.pp
- 192.168.3.97_osclient.pp: [ DONE ]
- 192.168.3.97_horizon.pp: [ DONE ]
- Applying 192.168.3.97_ring_swift.pp
- 192.168.3.97_ring_swift.pp: [ DONE ]
- Applying 192.168.3.97_swift.pp
- 192.168.3.97_swift.pp: [ DONE ]
- Applying 192.168.3.97_heat.pp
- Applying 192.168.3.97_heatcw.pp
- Applying 192.168.3.97_heatcnf.pp
- 192.168.3.97_heat.pp: [ DONE ]
- 192.168.3.97_heatcnf.pp: [ DONE ]
- 192.168.3.97_heatcw.pp: [ DONE ]
- Applying 192.168.3.97_sahara.pp
- 192.168.3.97_sahara.pp: [ DONE ]
- Applying 192.168.3.97_mongodb.pp
- Applying 192.168.3.97_redis.pp
- 192.168.3.97_mongodb.pp: [ DONE ]
- 192.168.3.97_redis.pp: [ DONE ]
- Applying 192.168.3.97_ceilometer.pp
- 192.168.3.97_ceilometer.pp: [ DONE ]
- Applying 192.168.3.97_trove.pp
- 192.168.3.97_trove.pp: [ DONE ]
- Applying 192.168.3.97_nagios.pp
- Applying 192.168.3.97_nagios_nrpe.pp
- 192.168.3.97_nagios.pp: [ DONE ]
- 192.168.3.97_nagios_nrpe.pp: [ DONE ]
- Applying 192.168.3.97_postscript.pp
- 192.168.3.97_postscript.pp: [ DONE ]
- Applying Puppet manifests [ DONE ]
- Finalizing [ DONE ]
- **** Installation completed successfully ******
- Additional information:
- * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
- * File /root/keystonerc_admin has been created on OpenStack client host 192.168.3.97. To use the command line tools you need to source the file.
- * To access the OpenStack Dashboard browse to http://192.168.3.97/dashboard .
- Please, find your login credentials stored in the keystonerc_admin in your home directory.
- * To use Nagios, browse to http://192.168.3.97/nagios username: nagiosadmin, password: admin
- * The installation log file is available at: /var/tmp/packstack/20150114-101431-ohUx_Z/openstack-setup.log
- * The generated manifests are available at: /var/tmp/packstack/20150114-101431-ohUx_Z/manifests
- [screen is terminating]
- [root@juno ~]#
7、根据安装打印输出,访问Horizon,开启openstack之旅呗
Centos7 install Openstack Juno (RDO) (转载)的更多相关文章
- Centos7 install Openstack - (第四节)添加计算服务(Nova)
Centos7 install Openstack - (第四节)添加计算服务(Nova) 我的blog地址:http://www.cnblogs.com/caoguo 该文根据openstack官方 ...
- Centos7 install Openstack - (第三节)添加镜像服务(Glance)
Centos7 install Openstack - (第三节)添加镜像服务(Glance) 我的blog地址:http://www.cnblogs.com/caoguo 该文根据openstack ...
- Deploy Openstack with RDO and Change VNC console to Spice
Deploy Openstack with RDO and Change VNC console to Spice host os: centOS 7 server config network an ...
- 一键安装openstack juno 之controller node.
原文名称: OpenStack Juno Scripted Installation on CentOS 7 Step I: 本机信息配置 CONTROLLER_IP=192.168.173.133 ...
- Deploying Cloud Foundry on OpenStack Juno and XenServer (Part I)
link http://rabbitstack.github.io/deploying-cloud-foundry-on-openstack-juno-and-xenserver-part-i/ Cl ...
- openStack juno for ubuntu12-04
<一,preinstall basic conf,pre Env> 1,pwgen(openssl rand -hex 10) some Open-Stack services add a ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置
继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...
- 使用openshit在ubuntu14.04下一键部署openstack(juno版本)
一.基本介绍 本实验是在vmware workstation上虚拟机ubuntu14.04(64bit,desktop)上部署openstack(Juno版本).采用的工具是openshit.open ...
- OpenStack Juno 版本发布——支持Spark和NFV[转]
作者:郑晨,OpenStack中国社区,转载请注明出处 美国时间2014年10月16日,OpenStack Juno版本正式发布,这是OpenStack开源云计算项目自2010年创立以来的第10个版本 ...
随机推荐
- Wrinkles should merely indicate where smiles have been.
Wrinkles should merely indicate where smiles have been. 皱纹应该只是微笑留下的印记.
- MySQL连表Update修改数据
设想两张表,如下 table A field id field name table B field id filed my_name 现在希望将表B中的my_name中的内容“拷贝”到表A中对应的n ...
- 【selenium学习笔记一】python + selenium定位页面元素的办法。
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的 ...
- UNITY_MATRIX_MVP和UnityObjectToClipPos
在unity5.6以上版本中,shader中的UNITY_MATRIX_MVP将会被UnityObjectToClipPos替代,以后我们在写顶点函数时就是这样的 v2f vert(appdata v ...
- Viewcontroller基类
#import <UIKit/UIKit.h> #import "YQZMutableArray.h" @interface YQZViewController : U ...
- HDU 5501 The Highest Mark (贪心+DP,经典)
题意: 有n道题目,每道题目的初始分数为Ai,分数每分钟减少Bi,完成此题需要Ci分钟,问在t分钟内最多能获得多少分? 思路: 好题~ 如果没有B的话,就是一道裸的01背包的题目了.每道题目的得分为: ...
- topcpder SRM 664 div2 A,B,C BearCheats , BearPlays equalPiles , BearSorts (映射)
A题,熊孩子测视力,水题,题意就是判断一下两个数对应位不相同的数字有多少个. #include<bits/stdc++.h> using namespace std; class Bear ...
- Android(java)学习笔记123:Android MediaPlayer 播放prepareAsync called in state 8解决办法
1. 使用android MediaPlayer播放音频文件时,有时会出现prepareasync called in state 8错误. 以下方法可以避免这个异常出现. 第1种方法: priva ...
- OpenCascade:Topo类型转换
OpenCascade:Topo类型转换 TopoDS_Edge newEdge; if (oldShape.ShapeType()==TopAbs_EDGE) newEdge=TopoDS::Edg ...
- k8s1.13.0二进制部署-node节点(四)
Master apiserver启用TLS认证后,Node节点kubelet组件想要加入集群,必须使用CA签发的有效证书才能与apiserver通信,当Node节点很多时,签署证书是一件很繁琐的事情, ...