Jarvis's Blog


  • Home

  • Tags

  • Categories

  • Archives

  • others

Ubuntu设置静态IP

Posted on 2019-01-15 | In Linux

Ubuntu 16.04.5 server

确认网卡

首先,可以先确认要配置 IP 的网卡名字。

平时常用来查看网卡信息的命令是ifconfig,如果在安装系统时,有进行网络配置,就可以看见已配置的网卡,例如:

1
2
3
4
5
6
$ ifconfig
ens33 Link encap:Ethernet HWaddr 00:0c:29:c0:90:ac
...
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
...

但是,如果安装时跳过了网络配置,通过ifconfig是无法看到网卡信息的,只能看到 loopback 接口:

1
2
3
4
$ ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
...

因此,推荐使用ip addr来查看网卡

1
2
3
4
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
...
2: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:0c:29:a7:15:e5 brd ff:ff:ff:ff:ff:ff

可以看到一张网卡 ens33 。

Read more »

部署一个 All-In-One 的 OpenStack

Posted on 2018-12-15 | In OpenStack

最近在学习 OpenStack,于是在虚拟机上使用DevStack部署了一个 All-In-One 的版本(也就是把所有的组件都放在了一个节点上),用于学习和测试。

Prerequisite

  • VMware Workstation 15 Pro(也可使用VirtualBox或KVM)
  • Ubuntu 16.04.5-server-amd64.iso(也可以使用其它Linux版本,只是OpenStack官网推荐Ubuntu。使用server版本可以节省内存等消耗。)

Ubuntu虚拟机至少分配4G内存。

Pre-Installation

安装好虚拟机后,一般来说只会用默认的账号登录,为了方便后续安装,可以先切换到root用户

设置root密码:

1
$ sudo passwd root

设置密码后,可以切换到root:

1
$ su root

以下操作在 root 用户下进行。

IP设置

如果部署多节点,需要设置 Ubuntu 静态 IP 。Ubuntu 下配置静态的方法可以参考Ubuntu 设置静态 IP。

对于单节点,使用DHCP影响不大。

工具安装

git

1
$ apt install git -y

其它的大部分工具,如pip等,DevStack会在安装过程中自动检测并安装

环境设置

DevStack的运行需要一个拥有 sudo 权限的非 root 用户。这里创建一个名为stack的用户:

1
$ useradd -s /bin/bash -d /opt/stack -m stack

赋权:

1
$ echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Configuration

接下来的安装过程,使用创建好的stack用户:

1
$ su stack

下载DevStack

下载 DevStack 到 stack 用户的根目录下,我这里使用的是 queens 版本:

1
2
$ cd
$ git clone https://git.openstack.org/openstack-dev/devstack -b stable/queens

也可以直接使用最新版本(master 分支):

1
$ git clone https://git.openstack.org/openstack-dev/devstack

具体的版本可以在这个链接查看。

Read more »

软件系统分析与设计-BCE模型

Posted on 2018-06-30 | In Software Engneering

详细设计 - BCE模型

使用 BCE 实现 make reservation 用例的详细设计

用例简介

用户选择城市 –> 搜索该城市 –> 根据城市选择酒店 –> [自定义排序] –> 查看所有酒店

顺序图

类图

包图

将逻辑设计类图映射到实际项目框架的包图

用树形结构表述实现的包和类

Docker-compose 一键部署web应用(Nginx + Flask + MySQL)

Posted on 2018-06-25 | In Docker

Docker-Compose简介

Docker-Compose是什么

Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。

其代码目前在 https://github.com/docker/compose 上开源。它的定位是定义和运行多个 Docker 容器的应用(Defining and running multi-container Docker applications)。

为什么要使用Docker-Compose

在之前的文章中,我们了解到使用一个Dockerfile可以很方便的自定义一个容器。然而,在实际的生产环境中,一个单独的容器往往是不足以完成任务的。例如,对于一个简单的网站,就需要一个web应用本身的容器,一个数据库容器 ,甚至是一个负载均衡服务器的容器。Docker-Compose正是为了解决这样的问题而诞生的,我们可以通过一个docker-compose.yml文件,定义一组容器的关联关系和依赖关系,将它们视作一个整体的项目(project)。Compose的官方图标就很好的说明了它的作用:

关于Compose的基本概念

Compose 中有两个重要的概念:

  • 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。

  • 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。

Docker-Compose实战

安装Docker-Compose

验证安装:

1
$ sudo docker-compose --version

如果还未安装的话,有以下两种方式:

  • 使用github二进制文件安装(建议)

    1
    2
    $ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    $ sudo chmod +x /usr/local/bin/docker-compose
  • 使用PIP安装:

    1
    $ sudo pip install -U docker-compose

使用Docker-Compose

接下来,我们使用Docker-Compose,搭建一个Nginx + Flask + MySQL的名为yelda的web应用。

Read more »

使用Dockerfile构建镜像,搭建Flask + MySQL应用

Posted on 2018-06-20 | In Docker

Dockerfile 简介

Dockerfile 是什么

镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。

为什么要用 Dockerfile

Dockerfile的好处实在是太多了,除非你真的能很容易的找到一个满足你一切需求,没有你不想要的层,非常好用的镜像。当你想要追求以上的条件时,就可以开始考虑用Dockerfile构建属于自己的镜像了。

Dockerfile 基本指令

Dockerfile功能很强大,它提供了十多个指令,详细可参考Dockerfile 指令详解

Dockerfile 实战

下面将以构建一个后端web应用为例,学习Dockerfile的使用。这个基本的web应用包括:

  • 利用Flask框架编写的后端应用
  • MySQL作为数据库

因此,分别需要两个个容器:

  • 运行后端程序的容器
  • 数据库容器
Read more »

Unity Collaborate Serive 入门

Posted on 2018-06-13 | In Unity

Introduction

在Unity上进行合作和版本管理有很多工具,常用的例如Perfoce和 Plastic SCM,这两款工具在Unity上的集成相对成熟,Unity也在官方文档中提供了相应的集成方法:

  • 集成Perforce Integration
  • 集成Plastic SCM

然而,这两款都是付费应用。想要不花钱,Git是很好的选择,github也为Unity开发了专门的插件:Github for Unity。目前插件还处于beta阶段,文档也不够完善,配置和使用中会出现不少麻烦。当然,如果你坚持要使用Git,也是没问题的,需要确保安装了git-lfs支持大文件上传,大部分的问题都可以在这里找到答案。

目前个人感觉体验最好的,是Unity原生的Collaborate Service服务。

Installation

这项服务属于Unity Team功能,也分为Basic和Advanced版本:

Basic Advanced
人数限制 3 > 3
云容量 1GB 25GB
价格 免费 $9/month

服务本身集成于Unity中(在Unity 2017.1版本之后为稳定版本),无需安装,直接开启即可。

在Services面板中,打开Collaborate:

如果找不到Services面板,可以在Window -> Services中开启,也可以点击这个云形状的图标:

Read more »

软件系统分析与设计-系统架构

Posted on 2018-06-03 | In Software Engneering

系统架构

架构与框架之间的区别与联系

只要清楚了两者的定义,它们之间的区别就很明显了。

  • 架构(Architecture):

    软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 架构是一系列关于软件系统组织的重要决策。软件架构决策涉及到软件系统核心(主体、基础)结构的组成元素,以及这些核心组成元素之间的相互依赖、交互、协作等关系。 一个软件的架构是动静结合的,既包括核心元素之间的静态结构(static structural)关系,也包括动态行为(dynamic behavioral)关系。

    软件架构对应的职业就是软件架构师 。

    与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,软件架构师或者系统架构师陈述软件架构以作为满足不同客户需求的实际系统设计方案的基础。

  • 框架(Framework):

    框架是特定语言和技术的架构应用解决方案 ,通常指的是为了实现某个业界标准或者完成特定的基本任务的软件组件规范。框架,与具体的软件应用无关,但是提供并实现最为基础的软件架构和体系。程序员根据特定的框架来实现更为复杂的业务逻辑。框架是集成了程序员代码和多种第三方解决方案的工具,让程序员聚焦业务逻辑代码而不是技术实现。

    框架可以看作一种特殊的软件,它并不能提供完整无缺的解决方案,而是为程序员构建解决方案提供良好的基础。框架是半成品 。

    简而言之,框架就是制定一套规范或者规则(思想),让大家(程序员)能够在该规范或者思想下工程。或者说使用别人搭好的舞台来做编剧或导演

Read more »

软件系统分析与设计-业务建模实例

Posted on 2018-05-13 | In Software Engneering

ofo共享单车App用车业务建模

根据ofo共享单车App用车业务描述,进行业务建模。本次建模只针对ofo App的使用车辆业务进行建模,不包括其余的参与活动,查看消息等业务,

用例图

活动图

Read more »
12…6
Jarvis Wong

Jarvis Wong

Ideas worth spreading.

43 posts
9 categories
30 tags
Ace-0 Gmail w674--7 Twitter
© 2018 — 2019 Zhijun Wang. All rights reserved.
Powered by Hexo
|
Theme — NexT.Gemini v6.0.3