0%

Dockerfile

Dockerfile分为四个部分: 基础镜像信息、维护者信息、镜像操作指令和容器启动指令。
即FROM、MAINTAINER、RUN、CMD四个部分

指令说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
FROM         指定所创建镜像的基础镜像
MAINTAINER 制定维护者信息
RUN 运行命令
CMD 容器启动是默认执行的命令
LABEL 指定生成镜像的元数据标签信息
EXPOSE 声明镜像内服务所监听的端口
ENV 指定环境变量
ADD 复制指定src路径的内容到容器的dest路径下,如果src为tar文件,则自动解压到dest路径下
copy 复制指定src路径的内容到镜像的dest路径下
ENTERPOINT 指定镜像的默认入口
VOLUME 创建数据卷挂载点
USER 指定运行容器是的用户名或UID
WORKDIR 配置工作目录
ARG 指定镜像内使用的参数
ONBUILD 配置当所创建的镜像作为其他镜像的基础镜像时,所执行创建操作指令
STOPSIGAL 容器退出信号值
HEALTHCHECK 如何进行健康检查
SHELL 指定使用shell的默认shell类型
Read more »

数据库基本操作

1
数据库的增删改查

库操作

创建库

1
2
mysql > create database db1;

查看库

1
2
mysql > show databases; 
mysql > show create database db1; //更详细的查看库
Read more »

###前言
SQL语句主要分为三大类

DDL语句
DDL是数据定义语句,是对数据库内部的对象进行创建、删除、修改等操作的语句.create、drop、alter等(DBA常用)

DML语句
DML是数据操作语句,指对数据库表记录的基本操作,insert、update、delete、select等(开发常用)

DCL语句
DCL是数据控制语句,用于控制不同数据段直接的许可和访问级别的语句.定义了数据库、表、字段、用户的访问权限和安全级别.主要是grant、revoke等(DBA常用)

DML语句

插入记录

建好表之后,往表里边插入数据
语法如下:

1
INSERT INTO tablename (field1,field2,...,fieldn) VALUES(value1,value2,...,valuen);
Read more »

grafana介绍

Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。
http://www.ywnds.com/?p=5903

安装grafana

Centos安装grafana

1
2
3
[root@alitiger ~]#  wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.2.0-1.x86_64.rpm

[root@alitiger ~]# yum localinstall grafana-4.2.0-1.x86_64.rpm
Read more »

– tiger

什么是sar

1
SAR是系统活动报告(System Activity Report)英文单词的首字母缩写。正如它的名字所表示的那样,SAR是一个在Unix和Linux操作系统中用来收集、报告和保存CPU、内存、输入输出端口使用情况的命令。SAR命令可以动态产生报告,也可以把报告保存在日志文件中。

如果你没有安装该软件包,可以使用下面一条命令来安装它。

1
2
3
4
5
6
7
8
[root@localhost ~]# yum install sysstat

启动sadc(system activity data collector)服务(sysstat),这样报告就会被写入到日志文件“/var/log/sa/saDD”中并且已经存在的文档将会被归档。DD表示当前日期。

[root@localhost ~]# systemctl start sysstat
[root@localhost ~]# systemctl enable sysstat

它每隔10分钟收集一次数据并且每天形成一份报告。

sar命令的使用

Read more »

rsync服务介绍

  • rsync功能

    • 做为命令,实现本地-远程文件同步
    • 做为服务,实现本地-远程文件同步
  • rsync特点

    • 可以镜像保存整个目录树和文件系统
    • 可以保留原有的权限(permssion,mode),owner,group,时间(修改时间,modifiy time),软硬链接等信息
    • 传输效率高,使用同步算法,至比较变化的
    • 支持匿名传输,方便网站镜;也可以做验证,加强安全
  • rsync同类服务

    • sync同步:刷新文件系统缓存,强制将修改过的数据写入磁盘,并且更新超级块
    • async异步:将数据先放到缓冲区,在周期性(一般是30s)的去同步到磁盘
    • rsync 远程同步,remote synchronous
Read more »

confluence是一个专业的企业知识管理与协同软件,可以用于构建企业wiki。通过它可以实现团队成员之间的协作和知识共享。

网上有关confluence的教程比较多,在此我们以confluence5.6.6版本为例进行相关的实验。

环境准备

confluence的运行是依赖java环境的,也就是说需要安装jdk并且要是1.7以上版本,如下:

1
2
3
4
5
java -version
[root@alitiger ~]# java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
Read more »

本文为Docker容器部署,包括Dubbo微服务、Zookeeper、Dubbo-admin的部署

本系列文章中所使用的框架版本为Spring Boot 2.0.3-RELEASE,Spring 5.0.7-RELEASE,Dubbo 2.6.2。

Docker容器启动参数

1
2
3
4
5
6
7
8
9
10
11
本文用到的运行参数说明:

-d: 后台运行容器,并返回容器ID
-i: 以交互模式运行容器,通常与-t同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
–name: 为容器指定一个名称
-e: 设置环境变量
–env-file: 从指定文件读取环境变量
-p: 端口映射,如果不做端口映射,容器外部无法访问容器内部
-v: 文件挂载
–link: 添加链接到容器,在default网络下,默认不会将容器名称解析到容器IP地址,必须要添加link选项才可以。而在自定义网络下,则不需要添加此选项
Read more »

YAML 语法

提供一个正确的 YAML 语法的基本概述, 它被用来描述一个 playbooks(我们的配置管理语言).

我们使用 YAML 是因为它像 XML 或 JSON 是一种利于人们读写的数据格式. 此外在大多数变成语言中有使用 YAML 的库.

你可能希望读 Playbooks 实践(http://ansible-tran.readthedocs.io/en/latest/docs/playbooks.html)中如何使用的.

基本的 YAML

对于 Ansible, 每一个 YAML 文件都是从一个列表开始. 列表中的每一项都是一个键值对, 通常它们被称为一个 “哈希” 或 “字典”. 所以, 我们需要知道如何在 YAML 中编写列表和字典.

YAML 还有一个小的怪癖. 所有的 YAML 文件(无论和 Ansible 有没有关系)开始行都应该是 ---. 这是 YAML 格式的一部分, 表明一个文件的开始.

列表中的所有成员都开始于相同的缩进级别, 并且使用一个 "- " 作为开头(一个横杠和一个空格):

1
2
3
4
5
6
7
<!--more-->
\---
\# 一个美味水果的列表
- Apple
- Orange
- Strawberry
- Mango

一个字典是由一个简单的键: 值的形式组成(这个冒号后面必须是一个空格):

1
2
3
4
5
\---
\# 一位职工的记录
name: Example Developer
job: Developer
skill: Elite

字典也可以使用缩进形式来表示, 如果你喜欢这样的话:

1
2
3
\---
\# 一位职工的记录
{name: Example Developer, job: Developer, skill: Elite}

Ansible并不是太多的使用这种格式, 但是你可以通过以下格式来指定一个布尔值(true/fase):

1
2
3
4
5
6
---
create_key: yes
needs_agent: no
knows_oop: True
likes_emacs: TRUE
uses_cvs: false

让我们把目前所学到的 YAML 例子组合在一起. 这些在 Ansible 中什么也干不了, 但这些格式将会给你感觉:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\---
\# 一位职工记录
name: Example Developer
job: Developer
skill: Elite
employed: True
foods:
- Apple
- Orange
- Strawberry
- Mango
languages:
ruby: Elite
python: Elite
dotnet: Lame

这就是你开始编写 Ansible playbooks 所需要知道的所有 YAML 语法.

Gotchas

尽管 YAML 通常是友好的, 但是下面将会导致一个 YAML 语法错误:

1
foo: somebody said I should put a colon here: so I did

你需要使用引号来包裹任何包含冒号的哈希值, 像这样:

1
foo: "somebody said I should put a colon here: so I did"

然后这个冒号将会被结尾.

此外, Ansible 使用 “{{ var }}” 来引用变量. 如果一个值以 “{” 开头, YAML 将认为它是一个字典, 所以我们必须引用它, 像这样:

1
foo: "{{ variable }}"

see also

1
2
3
4
5
6
7
8
9
10
Playbooks
Learn what playbooks can do and how to write/run them.(links:http://ansible-tran.readthedocs.io/en/latest/docs/playbooks.html)
YAMLLint
YAML Lint (online) helps you debug YAML syntax if you are having problems(links:http://yamllint.com/)
Github examples directory
Complete playbook files from the github project source(links:https://github.com/ansible/ansible-examples)
Mailing List
Questions? Help? Ideas? Stop by the list on Google Groups(links:http://groups.google.com/group/ansible-project)
irc.freenode.net
#ansible IRC chat channel(links:http://irc.freenode.net/)

it’s all

写在前面的话

关于安装和基础的使用请参考,上一篇ansible,本文只记录一些ansible的扩展知识

动态inventory

1
2
3
4
5
Cobbler 外部 Inventory 脚本
AWS EC2 外部 inventory 脚本
其它 inventory 脚本
使用多个 inventory 源
动态组作为静态组的子组

使用配置管理系统经常有一种需求,可能要在其他的软件系统中保存自己的 inventory 配置信息.

Ansible 本身通过基于文本的方式来记录 inventory 配置信息,这在前面已介绍过(详见 Inventory文件 ).

除此之外,Ansible 也支持用其他方式保存配置信息.

Read more »