iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Teuthology平台部署是怎样的
  • 789
分享到

Teuthology平台部署是怎样的

2023-06-05 16:06:38 789人浏览 薄情痞子
摘要

本篇文章为大家展示了Teuthology平台部署是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Teuthology架构软件组成Teuthology 测试框架所使用到的软件组成如下:jenki

本篇文章为大家展示了Teuthology平台部署是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Teuthology架构

软件组成

Teuthology 测试框架所使用到的软件组成如下:

  • jenkins 持续集成工具

  • teuthology Ceph 测试套件

  • shaman 查询提供软件包的 chacra 节点,水平扩展和调度 chacra 节点

  • chacra 提供不同架构二进制包或文件的管理 REST api 接口

    Teuthology部署

    部署paddles/pulpito node

    安装依赖
yum install git python-dev Python-virtualenv postgresql postgresql-contrib postgresql-server-dev-all supervisor GCc epel-release
配置postgresql数据库

初始化数据库

postgresql-setup initdbsystemctl start postgresql //启动数据库systemctl enable postgresql

postgresql安装并启动后,会自动生成postgres用户

su - postgres //进入该用户-bash-4.2$ psql //进入数据库postgres=# \passWord postgres //更改用户postgres的密码

//按照输出的提示输入密码即可

创建数据库实例paddles、shaman

postgres=#create database paddles; // 创建名为paddles的数据库postgres=#create database shaman; // 创建名为shaman的数据库postgres=#create database chacra; // 创建名为chacra的数据库
安装配置paddles

创建paddles用户,并克隆paddles项目

useradd -m paddles -g root -G root //新建用户 paddlessu - paddles //切换到paddles用户下git clone https://GitHub.com/ceph/paddles.git //克隆该项目cd paddlesvirtualenv ./virtualenv //创建python的沙盒环境source ./virtualenv/bin/activate //进入沙盒环境

修改配置文件,paddles中有配置文件的例子,只需要复制一份并修改即可。

cp config.py.in config.py

需要修改的内容

job_log_href_templ= 'Http://qa-proxy.ceph.com/teuthology/{run_name}/{job_id}/teuthology.log' # 将qa-proxy.ceph.com/teuthology改成自己对应日志服务器的地址...sqlalchemy = {     # You may use SQLite for testing    'url': ' postgresql://postgres:password@localhost/paddles',    # When you set up PostreSQL, it will look more like:    #'url': 'postgresql+psycopg2://USER:PASSWORD@DB_HOST/DB_NAME',    'echo': True,    'echo_pool': True,    'pool_recycle': 3600,    'encoding': 'utf-8'}

修改/var/lib/pgsql/data/pg_hba.conf,解决初始化paddles环境时的报错Ident authentication failed。

# "local" is for Unix domain Socket connections onlylocal   all             all                                     trust# IPv4 local connections:host    all             all             127.0.0.1/32            md5# IPv6 local connections:host    all             all             ::1/128                 trust

修改完后,保存并退出。然后安装相关依赖,初始化环境。

$pip install -r requirements.txt //安装相关依赖$python setup.py develop // 初始化环境$pecan populate config.py// 在postgresql创建paddles需要的表

配置数据迁移工具

$ cp alembic.ini.in alembic.ini$ vi alembic.ini    sqlalchemy.url = postgresql://postgres:password@localhost/paddles$alembic stamp head//触发迁移工具生效

通过supervisord部署paddles服务

#cat /etc/supervisord.d/paddles.ini[program:paddles]user=paddlesenvironment=HOME="/home/paddles", USER="paddles"directory=/home/paddles/paddlescommand=/home/paddles/paddles/virtualenv/bin/gunicorn_pecan -c gunicorn_config.py config.pyautostart=trueautorestart=trueredirect_stderr=truestdout_logfile = /home/paddles/paddles.out.logstderr_logfile = /home/paddles/paddles.err.log
安装配置pulpito

创建pulpito用户,切换到pulpito用户进行部署

#useradd -m pulpito -g root -G root#su - pulpito$git clone https://github.com/ceph/pulpito.git$cd pulpito$virtualenv ./virtualenv

修改配置文件,paddles中有配置文件的例子,只需要复制一份并修改即可。

$cp config.py.in prod.py$vi prod.py

主要的修改部分如下:

………paddles_address = 'http://192.168.122.34:8080' #实际的paddles服务地址………'debug': False,

修改完后,保存并退出。然后安装相关依赖。

$source ./virtualenv/bin/activate$pip install -r requirements.txt //安装相关依赖

通过supervisord部署pulpito服务

#cat /etc/supervisord.d/pulpito.ini[program:pulpito] user=pulpito directory=/home/pulpito/pulpito command=/home/pulpito/pulpito/virtualenv/bin/python run.py environment=HOME="/home/pulpito",USER="pulpito" autostart=true autorestart=true redirect_stderr=true stdout_logfile = /home/pulpito/pulpito.out.log stderr_logfile = /home/pulpito/pulpito.err.log启动supervisorsudo supervisord -c /etc/supervisord.confsudo supervisorctl reloadsudo supervisorctl start all//启动sudo supervisorctl status//查看状态,可以看到paddles 和pulpito的进程启动了检测服务

在浏览器或者终端,访问 http://{ip}:8080/和http://{ip}:8081/就可以了,看到如下界面:

Teuthology平台部署是怎样的

部署shaman

shaman的部署方式分为两种一种是手动部署,另一种通过ansible,在此采用的是手动部署。

安装相关依赖
yum install epel-release gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git wget wxBase.x86_64 erlang
安装RabbitMQ
wget https://www.rabbitMQ.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc yum install rabbitmq-server-3.6.1-1.noarch.rpmsystemctl start rabbitmq-server #启动rabbitmq-serversystemctl enable rabbitmq-server #设置rabbitmq-server开机自启动
部署shaman

创建shaman用户,并克隆shaman项目,然后创建沙盒环境。

useradd -m shaman -g root -G root //新建用户shamansu - shaman //切换到shaman用户下git clone https://github.com/ceph/shaman.git //克隆该项目cd shamanvirtualenv ./virtualenv //创建python的沙盒环境source ./virtualenv/bin/activate //进入沙盒环境

安装一些在requirements.txt中没有的软件依赖

pip install --upgrade setuptools pip install --upgrade pippip install "cherrypy>=3.8.0,<9.0.0" pip install wsGIServer

修改配置文件config/dev.py。

$vim config/dev.py...    ],     'debug': False,} ... sqlalchemy_w = {     #'url': 'sqlite:///dev.db',     'url': 'postgresql://postgres:password@localhost/shaman',     'echo': True,     'echo_pool': True,     'pool_recycle': 3600,     'encoding': 'utf-8' } sqlalchemy_ro = {     #'url': 'sqlite:///dev.db',     'url': 'postgresql://postgres:password@localhost/shaman',     'echo': True,     'echo_pool': True,     'pool_recycle': 3600,     'encoding': 'utf-8' } ....

修改config/run.py,需要修改的内容为,其中服务IP根据具体改动:

simpleapp_wsgi_app = deploy('config/dev.py')...server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 8082), application, server_name='simpleapp')

初始化环境

$pip install -r requirements.txt //安装相关依赖$python setup.py develop // 初始化环境$pecan populate config/dev.py// 在postgresql创建shaman需要的表

配置数据迁移工具

$ cp alembic.ini.in alembic.ini$ vi alembic.ini    sqlalchemy.url = postgresql://postgres:password@localhost/shaman$alembic stamp head//触发迁移工具生效
配置supervisord

通过supervisord部署shaman服务

#cat /etc/supervisord.d/shaman.ini[program:shaman] user=shaman directory=/home/shaman/shaman command=/home/shaman/shaman/virtualenv/bin/python config/run.py environment=HOME="/home/shaman",USER="shaman" autostart=true autorestart=true redirect_stderr=true stdout_logfile = /home/shaman/shaman.out.log stderr_logfile = /home/shaman/shaman.err.log

启动shaman服务

sudo supervisorctl reread && sudo supervisorctl update shaman && sudo supervisorctl start shaman
检测服务

在浏览器或者终端,访问 http://{ip}:8082/就可以了,看到如下界面:

Teuthology平台部署是怎样的

部署chacra

chacra的部署较为复杂,采取的是ansible的方式,但是官方提供的部署文件是针对ubuntu系统的,需要进行改动。

修改playbooks相关文件

修改deploy/playbooks/examples/deploy_test.yml中对应参数

development_server: trueapi_user: "admin"api_key: "secret"graphite_api_key: '1234-asdf-1234'callback_url: "http://{ip}:8082/api/repos/" #shaman的地址callback_user: "admin"callback_key: "secret"health_ping_url: "http://{ip}:8082/api/nodes/" #shaman的地址

修改deploy/playbooks/roles/common/tasks/letsencrypt.yml

#删除下面几行- name: install software-properties-common  apt:    name: software-properties-common    state: latest    update_cache: yes  become: true- name: add certbot PPA  apt_repository:    repo: "ppa:certbot/certbot"  become: true

修改deploy/playbooks/roles/common/tasks/rabbitmq.yml

#删除下面几行- name: add the rabbitmq official repo  become: true  apt_repository:    repo: "deb http://www.rabbitmq.com/debian/ testing main"    state: present- name: add the rabbitmq public key  become: true  apt_key:    url: "https://www.rabbitmq.com/rabbitmq-release-signing-key.asc"    state: present- name: update the apt cache  become: true  apt:    update_cache: true

修改deploy/playbooks/roles/common/tasks/systemd.yml

# 将state由running改为startedservice: name=chacra state=started enabled=yesservice: name=chacra-celery state=started enabled=yesservice: name=chacra-celerybeat state=started enabled=yes

修改deploy/playbooks/roles/common/templates/systemd/chacra-celery.service.j2

# 由于%I在systemd中有特殊的含义,所有在此将%I改为%%IExecStart={{ app_home }}/bin/celery multi start 5 -Q:1,2 poll_repos,celery -Q:3-5 build_repos -A async --logfile=/var/log/celery/%n%%I.logExecReload={{ app_home }}/bin/celery multi restart 5 -Q:1,2 poll_repos,celery -Q:3-5 build_repos -A async --logfile=/var/log/celery/%n%%I.log
部署chacra

使用ansible-playbook部署ansible服务

检查服务

在浏览器或者终端,访问 http://{ip}:8083/就可以了,看到如下界面:

Teuthology平台部署是怎样的

Teuthology Node

Teuthology部署中官方建议为两个角色scheduler和worker。

创建/etc/teuthology.yaml

内容如下:

lab_domain: didichuxing.com #testnode的域名后缀arcHive_base: /home/teuthworker/archive # 存储日志信息的地方automated_scheduling: Falsereserve_Machines: 0queue_host: 127.0.0.1queue_port: 11300lock_server: 'http://{ip}:8080' # paddles的地址results_server: 'http://{ip}:8080' # paddles的地址results_ui_server: 'http://{ip}:8081' # pulpito的地址#results_sending_email: 'teuthology',results_timeout: 43200# Verify the packagee signaturescheck_package_signatures: falseceph_git_base_url: 'git@git.xiaojukeji.com:chishui/' # gitlab地址ceph_git_url: 'git@git.xiaojukeji.com:chishui/deph.git'ceph_qa_suite_git_url: 'git@git.xiaojukeji.com:chishui/deph.git'use_conserver: Falseconserver_master: 'conserver.front.sepia.ceph.com'conserver_port: 3109max_job_time: 259200  # 3 daysbaseurl_template: 'http://{host}/{proj}-{pkg_type}-{dist}-{arch}-{flavor}/{uri}'use_shaman: Trueshaman_host: '{ip}:8082'src_base_path: /home/teuthworker/srcteuthology_path: /home/teuthworker/src/teuthology_mastersuite_verify_ceph_hash: Falsesuite_allow_missing_packages: False
安装依赖
yum -y install git python-devel python-pip python-virtualenv libevent-devel libvirt-python beanstalkd

启动beanstackd队列:

systemctl start beanstalkdsystemctl enable beanstalkd # 配置开机自启动
部署teuthology

创建teuthology与teuthworker两个用户:

useradd -m teuthology -g root -G rootuseradd -m teuthworker -g root -G root

分别给两个账号授予passwordless sudo access权限:

useradd ubuntuvim /etc/sudoers#添加下面两行teuthology   ALL=(ALL)         NOPASSWD: ALLteuthworker  ALL=(ALL)         NOPASSWD: ALL
scheduler
su - teuthologymkdir ~/srcgit clone https://github.com/ceph/teuthology.git src/teuthology_masterpushd src/teuthology_master/./bootstrappopd
worker
su - teuthworkermkdir ~/srcgit clone https://github.com/ceph/teuthology.git src/teuthology_masterpushd src/teuthology_master/./bootstrappopdmkdir ~/binwget -O ~/bin/worker_start https://raw.githubusercontent.com/ceph/teuthology/master/docs/_static/worker_start.shecho 'PATH="$HOME/src/teuthology_master/virtualenv/bin:$PATH"' >> ~/.profilesource ~/.profilemkdir -p ~/archive/worker_logsworker_start magna 1

使用worker_start来启动一个plana的工作进程

worker_start plana 1
配置teuthology和teuthworker用户与test nodes间的免密登录
ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@{machine_type}00x.example.com

Test Nodes

添加ubuntu用户

在每个test node上创建ubuntu用户,并为ubuntu用户授予passwordless sudo access权限。

useradd ubuntupasswd ubuntuNew password: <密码>etype new password: <密码>vim /etc/sudoers#添加下面一行ubuntu All=(ALL) NOPASSWD:ALL
配置ssh
#vim /etc/ssh/sshd_config//更改为下面行#HosTKEy /etc/ssh/ssh_host_key# HostKeys for protocol version 2HostKey /home/ubuntu/.ssh/id_rsa#HostKey /etc/ssh/ssh_host_rsa_key#HostKey /etc/ssh/ssh_host_dsa_key#HostKey /etc/ssh/ssh_host_ecdsa_key#HostKey /etc/ssh/ssh_host_ed25519_key......PermitRootLogin yes......PubkeyAuthentication yes......PasswordAuthentication yes......#systemctl restart sshd
安装依赖
yum install -y redhat-lsb yum-priorities genisoimage wget

submitting nodes

在paddles中注册test nodes

wget https://raw.githubusercontent.com/ceph/teuthology/master/docs/_static/create_nodes.py

修改create_nodes.py

paddles_url = 'http://{ip}:8080/nodes/' # paddles的地址machine_type = 'plana'lab_domain = 'example.com'# Don't change the user. It won't work at this time.user = 'ubuntu'# We are populating 'plana001' -> 'plana003'machine_index_range = range(1, 4) # 创建了'plana001' -> 'plana003' 3台机器......

日志服务器部署
添加Nginx服务配置

server {  listen 80;  server_name {ip};  default_type text/plain;  access_log /var/log/nginx/log-access.log;  error_log /var/log/nginx/log-error.log;  location / {    autoindex on;    alias /home/teuthworker/archive/;  }}

重启nginx服务

systemctl restart nginx

修改paddles配置中的job_log_href_templ的值为:

job_log_href_templ= 'http://{ip}/{run_name}/{job_id}/teuthology.log'

上述内容就是Teuthology平台部署是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: Teuthology平台部署是怎样的

本文链接: https://www.lsjlt.com/news/243637.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Teuthology平台部署是怎样的
    本篇文章为大家展示了Teuthology平台部署是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Teuthology架构软件组成Teuthology 测试框架所使用到的软件组成如下:Jenki...
    99+
    2023-06-05
  • Teradata跨平台部署的方法是什么
    Teradata跨平台部署的方法包括以下步骤: 确定目标平台:首先确定要部署到的目标平台,例如Linux、Windows等。 ...
    99+
    2024-04-09
    Teradata
  • LAMP平台部署及应用
    LAMP平台部署及应用 📒博客主页: 微笑的段嘉许博客主页 💻微信公众号:微笑的段嘉许 🎉欢迎关注🔎点赞👍收藏⭐...
    99+
    2023-09-17
    php 开发语言
  • MySQL 跨平台部署指南
    MySQL 跨平台部署指南 随着信息化时代的不断发展,数据库在各行各业中扮演着至关重要的角色。MySQL作为一款开源的关系型数据库管理系统,在众多数据库产品中拥有广泛的应用。在现代企业...
    99+
    2024-03-01
    mysql 部署 跨平台 linux操作系统
  • Laravel 和 CodeIgniter 是否支持云平台部署?
    laravel 和 codeigniter 均支持云平台部署。laravel 提供开箱即用的原生支持,简化了部署过程。而 codeigniter 需要额外配置和修改才能在云环境中运行。 ...
    99+
    2024-05-12
    部署 云平台 laravel
  • Laravel 和 CodeIgniter 是否支持云平台部署?
    laravel 和 codeigniter 均支持云平台部署。laravel 提供开箱即用的原生支持,简化了部署过程。而 codeigniter 需要额外配置和修改才能在云环境中运行。 ...
    99+
    2024-05-12
    部署 云平台 laravel
  • ONNX对于跨平台部署的优势是什么
    开放标准:ONNX是一个开放的标准,可以跨不同的深度学习框架进行模型转换和部署,使得开发者可以更加方便地在不同的平台上使用同一个...
    99+
    2024-04-02
  • 多平台上怎么安装和部署golang
    Golang,也被称为Go语言,是由Google开发的一种新兴的编程语言。对比于其他语言,Golang的特点是轻量级且高效,并且能够有效处理高并发的情况。因其独特的特点,越来越多的开发者和公司开始选择使用Golang作为其首选的开发语言。这...
    99+
    2023-05-14
  • 将Java应用部署到SAP云平台neo环境的两种方式分别是怎样的
    这期内容当中小编将会给大家带来有关将Java应用部署到SAP云平台neo环境的两种方式分别是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。方法1 - 使用EclipseEclipse里新建一个服务器...
    99+
    2023-06-04
  • CronHub的安装部署是怎样的
    本篇文章给大家分享的是有关CronHub的安装部署是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、基础环境IP:10.29.181....
    99+
    2024-04-02
  • 如何将Hadoop部署在云平台上
    要在云平台上部署Hadoop,您可以按照以下步骤进行操作: 选择一个适合的云平台:每个云平台都有其自己的优势和特点,您可以根据自己...
    99+
    2024-04-09
    Hadoop
  • C++跨平台开发:云部署和跨平台支持的最佳方法?
    c++++ 跨平台开发可在多种平台上创建应用程序,方法是:云部署提供了可扩展性、弹性、按需付费等优势。跨平台支持库如 qt、glfw、sdl 简化了应用程序开发,可支持不同操作系统(如 ...
    99+
    2024-05-10
    c++ 跨平台 linux macos 跨平台应用
  • 基于rhel7.2的Zabbix平台搭建和部署(三)
    基于rhel7.2的Zabbix平台搭建和部署(三)一、优化zabbix服务端配置:此时你看到的是英文页面,我们现在让其显示简体中文页面。(1)由于在安装数据库时已经将zabbix库设置了utf-8字符首先...
    99+
    2024-04-02
  • 怎么在不同平台上安装和部署Golang
    今天小编给大家分享一下怎么在不同平台上安装和部署Golang的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、Linux平台...
    99+
    2023-07-05
  • 多平台上如何安装和部署golang
    这篇文章主要讲解了“多平台上如何安装和部署golang”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“多平台上如何安装和部署golang”吧!一、Golang的安装要使用Golang进行开发,...
    99+
    2023-07-05
  • Atlas是否支持在云端部署和跨平台运行
    是的,Apache Atlas支持在云端部署和跨平台运行。Apache Atlas是一个开源的数据治理和元数据管理平台,可帮助组织跟...
    99+
    2024-04-09
    Atlas
  • Django 部署策略:选择适合你的云平台
    Django、云平台、AWS、Azure、GCP 1. Amazon Web Services (AWS) AWS 是一个业界领先的云平台,提供了一系列服务来支持 Django 部署。 弹性计算云 (EC2):可让您在按需或预留的基...
    99+
    2024-02-16
    选择合适的云平台以部署 Django 应用程序至关重要 这将影响应用程序的性能 可扩展性和成本。本文探讨了在不同云平台上部署 Django 的策略 帮助你选择最适合你需求的平台。
  • PHP 跨平台应用的部署与发布策略
    部署策略:微服务化架构:独立部署模块容器化:使用容器技术打包应用云端部署:利用云平台服务自动化部署发布策略:滚动更新:逐步部署新版本蓝绿部署:同时运行新旧版本逐步切换流量特性标志:逐步引...
    99+
    2024-05-07
    php 跨平台应用 docker apache
  • Storm安装部署步骤是怎样的
    Storm安装部署步骤是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. Storm集群组件Storm集群中包含两类节点:主控节点(M...
    99+
    2024-04-02
  • Node中怎么实现一个自动化部署平台
    Node中怎么实现一个自动化部署平台,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。业务需求这个JSSDK,主要作用是在后端了为...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作