使用Docker 部署 TestLink 开源测试管理工具

Publish: April 10, 2021 Category: 运维 No Comments

0x01 什么是TestLink

TestLink是一个基于web的测试管理系统,有助于软件质量保证。它由Teamtest开发和维护。该平台提供对测试用例、测试套件、测试计划、测试项目和用户管理的支持,以及各种报表和统计数据。

0x02 使用Docker部署TestLink工具

选用bitnami构建好的镜像,使用如下配置,可以直接启动一个完整功能的TestLink容器,Bitnami构建的镜像非常好用其自包含Maridb数据库容器构建过程,省心省力。

新建一个构建目录,创建以下文件并填写内容:

docker-compose.yml
version: '2'
services:
  mariadb:
    image: docker.io/bitnami/mariadb:10.3
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=bn_testlink
      - MARIADB_DATABASE=bitnami_testlink
    volumes:
      - 'mariadb_data:/bitnami/mariadb'
  testlink:
    image: docker.io/bitnami/testlink:latest
    ports:
      - '80:8080'
    environment:
      - TESTLINK_DATABASE_HOST=mariadb
      - TESTLINK_DATABASE_PORT_NUMBER=3306
      - TESTLINK_DATABASE_USER=bn_testlink
      - TESTLINK_DATABASE_NAME=bitnami_testlink
      - TESTLINK_USERNAME=admin
      - TESTLINK_PASSWORD=admin
      - TESTLINK_SMTP_HOST=smtp.gmail.com
      - TESTLINK_SMTP_PORT=587
      - TESTLINK_SMTP_USER=your_email@gmail.com
      - TESTLINK_SMTP_PASSWORD=your_password
    volumes:
      - 'testlink_data:/bitnami/testlink'
    depends_on:
      - mariadb
volumes:
  mariadb_data:
    driver: local
  testlink_data:
    driver: local

阅读剩余部分...

Influxdb2.0 存储引擎体积过大排查解决过程记录

Publish: January 18, 2021 Category: 运维 No Comments

现状

device_traffic 表所在的bucket已经设置了 Retention Policy 为 3d仍然整体的占用体积超过20G。tsm存储引擎文件过大严重超出预期,影响其他业务。通过简单分析主要是tsm文件过大,也就是说确实是存储的内容过多。

排查过程

通过简单分析,总体的思路是找到存储引擎位置,逐一分析具体是哪个bucket体积过大,然后分析原因。
在存储目录通过命令

cd /usr/local/influxdb/engine/data
du -sh ./*

逐一排查具体是哪个buckt所占的目录体积较大。目前来看是 “/” bucket体积特别大。“/”主要是influxdb系统相关的数据,并不会影响业务。


阅读剩余部分...

ubuntu14.04下LNMP环境使用docker安装多PHP环境

Publish: December 11, 2020 Category: 运维 No Comments

本文主要分享一个小技巧,如果你的环境中只有一个php版本,又想部署一个新的版本,但是又不想太繁杂,可以使用本文提供的一个简单方法。使用docker创建多PHP环境。

现有的物理环境版本如下,使用 php -v查看当前版本。

php -v
PHP 5.6.31 (cli) (built: Sep  6 2017 16:12:32) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend Guard Loader v3.3, Copyright (c) 1998-2014, by Zend Technologies

例子中我的PHP版本是5.6,整个基础软件环境使用的是LNMP架构,想提供一个新的PHP版本。这里采用的docker最基本的方式。
手动安装方式:

#手动方式运行php docker容器
docker run -idt --name=php7.2 \
--restart=always \
-p 9001:9000 \
-v /home/wwwroot/xxxx:/var/www/html \ 
-v /opt/server/php:/usr/local/etc/php php:7.2-fpm \
--link mysql8:docker_mysql8 \
/bin/bash \

#手动方式运行mysql docker容器
docker run -idt --name=mysql8\
--restart=always \
-p 3307:3306 \
-v /server/mysql:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e "MYSQL_ROOT_PASSWORD=xxxx"  \
mysql:8.0  

阅读剩余部分...

使用Scrapyd+ScrapyWEB可视化管理Scrapy爬虫

Publish: December 10, 2020 Category: 运维 No Comments

本文主要介绍怎样安装和配置scrapyd以及使用scrapyd部署和运行scrapy爬虫。

安装

 scrapyd依赖一下库
Python 2.7 以及更高版本
Twisted 8.0 以及更高版本
Scrapy 1.0 以及更高版本
six

如何安装Scrapyd取决于您使用的平台。一般的方法是从PyPI安装它:

#使用pip
pip install scrapyd

#使用conda
conda install -n py37 scrapyd

默认情况下scrapyd的配置文件在各个平台的安装位置如下,ubuntu下新版本安装后不再生成配置文件需要自行创建。

/etc/scrapyd/scrapyd.conf (Unix)
c:\scrapyd\scrapyd.conf (Windows)
/etc/scrapyd/conf.d/* (in alphabetical order, Unix)
scrapyd.conf
~/.scrapyd.conf (users home directory)

阅读剩余部分...

Inflxudb2 任务使用简介之1.0版本中连续查询如何转换为任务

Publish: December 1, 2020 Category: 编程,运维 No Comments

influxdb1.x版本中支持的CQs(连续查询)在influxdb2.x中被task取代,全新定义了一套新的规则,我们暂且称之为任务规则。
如果你是从1.x版本中迁移数据,可以直接将1.x中的CQs直接转换成task来执行比如我之前的一段CQs:

create continuous query flow_rx_cq on multiwan 
begin  
    select sum(value) 
    into "multiwan_inf"."autogen"."flow_rx_cq_result" 
    from multiwan_raw_rx 
    group by time(30m), flashid,imei,imsi,iccid 
end

转换之后对应的是

from(bucket: "multiwan/")
  |> range(start: -3d)
  |> filter(fn: (r) => r._measurement == "multiwan_raw_rx")
  |> filter(fn: (r) => r._field == "value")
  |> aggregateWindow(every: 1m, fn: sum)
  |> set(key: "_measurement", as: "flow_rx_cq_result")
  |> to(
    org: "example-org",
    bucket: "multiwan/flow_rx_cq"
  )

上面的命令是如下意思:
在multiwan的bucket中,创建一个连续查询结果存放在multiwan_rx_cq_result中,数据来源是multiwan_raw_rx 每一分钟执行一次计算value字段的累计结果值。
在命令行中执行

使用raw Flux创建一个任务

influx task create --org my-org - # <return> to open stdin pipe


options task = {
  name: "flow_rx_task_result",
  every: 6
}

# <ctrl-d> to close the pipe and submit the command 按ctrl+d 关闭管道并提交