社区管理系统的设计与实现外文翻译资料

 2023-03-15 03:03

社区管理系统的设计与实现

关键词:电脑操作系统,计算机输入输出设备,系统软件

重点阐述了计算机系统管理中应考虑的重要因素。规划集群安装时必须考虑的事项;在选择硬件时应该关注的因素;集群安装的性能规范。

Fabric库

Fabric库是一个用于简化系统管理任务的库。Chef库和Puppet库倾向于专注于管理服务器和系统库,而Fabric库则更专注于应用程序级别的任务,比如部署。

安装Fabric库:

$ pip install fabric

下面的代码将创建我们可以使用的两个任务:memory_usage和deploy。前者将输出每台机器上的内存使用情况。后者将SSH进入每个服务器,进入到我们的项目目录,激活虚拟环境,获取最新的代码库,并重新启动应用服务器。

from fabric.api import cd, env, prefix, run, task

env.hosts = [my_server1, my_server2]

@task

def memory_usage():

run(free -m)

@task def deploy():

with cd(/var/www/project-env/project):

with prefix(. ../bin/activate):

run(git pull)

run(touch app.wsgi)

前面的代码保存在名为fabfile.py的文件中,我们可以使用以下方法检查内存使用情况:

$ fab memory_usage

[my_server1] Executing task memory

[my_server1] run: free -m[my_server1] out: total used free shared buffers cached

[my_server1] out: Mem: 6964 1897 5067 0 166 222

[my_server1] out: -/ buffers/cache: 1509 5455

[my_server1] out: Swap: 0 0 0

[my_server2] Executing task memory

[my_server2] run: free -m

[my_server2] out: total used free shared buffers cached

[my_server2] out: Mem: 1666 902 764 0 180 572

[my_server2] out: -/ buffers/cache: 148 1517

[my_server2] out: Swap: 895 1 894

我们可以这样部署:

$ fab deploy

其他功能包括并行执行、与远程程序交互以及主机分组。

Salt工具

Salt是一个开源基础设施管理工具。它支持从中心点执行远程命令(主主机)到多个主机(仆从)。它还支持系统状态,可用于配置多个状态使用简单模板文件的服务器。

Salt支持Python 2.6和2.7版本,可以通过pip安装:

$ pip install salt

在配置主服务器和任意数量的仆从主机之后,我们可以在仆从主机上运行任意shell命令或使用预构建的复杂命令模块。

下面的命令使用ping模块列出了所有可用的仆从主机。

$ salt * test.ping

主机过滤是通过匹配仆从id或使用数据系统来完成的。数据系统使用静态主机信息,如操作系统版本或CPU架构,为主机提供分类盐模块。

下面的命令列出了所有在CentOS中使用数据系统运行的仆从:

$ salt -G os:CentOS test.ping

Salt也提供了一个状态系统。状态可以用来配置仆从主机。

例如,当一个minion主机被命令读取以下状态文件时,它将安装并启动Apache服务器:

apache:

pkg:

- installed

service:

- running

- enable: True

- require:

- pkg: apache

可以使用YAML、Jinja2模板系统或纯Python编写状态文件。

Psutil接口

Psutil是不同系统信息(如CPU、内存、磁盘、网络、用户和进程)的接口。

下面是一个需要注意服务器过载的示例。如果任何测试(网络、CPU)失败,它将发送一封电子邮件。

# Functions to get system values:

from psutil import cpu_percent, net_io_counters

# Functions to take a break:

from time import sleep

# Package for email services:

import smtplib

import string

MAX_NET_USAGE = 400000

MAX_ATTACKS = 4

attack = 0

counter = 0

while attack lt;= MAX_ATTACKS:

sleep(4)

counter = counter 1

# Check the cpu usage

if cpu_percent(interval = 1) gt; 70:

attack = attack 1

# Check the net usage

neti1 = net_io_counters()[1]

neto1 = net_io_counters()[0]

sleep(1)

neti2 = net_io_counters()[1]

neto2 = net_io_counters()[0]

# Calculate the bytes per second

net = ((neti2 neto2) - (neti1 neto1))/2

if net gt; MAX_NET_USAGE:

attack = attack 1

if counter gt; 25:

attack = 0

counter = 0

# Write a very important email if attack is higher than 4

TO = 'you@your_email.com'

FROM = 'webmaster@your_domain.com'

SUBJECT = 'Your domain is out of system resources!'

text = 'Go and fix your server!'

BODY = string.join(('From: %s' %FROM,'To: %s' %TO,'Subject: %s' %SUBJECT, '',text), ' ')

server = smtplib.SMTP(127.0.0.1)

server.sendmail(FROM, [TO], BODY)

server.quit()

glance是一个基于Psutil并具有客户机-服务器监控能力的完整终端应用程序。

Ansible工具

Ansible是一个开源的系统自动化工具。相对于Puppet 或Chef,它最大的优势在于它不需要

要求客户端机器上有一个代理。剧本是Ansible的配置、部署和编排并使用YAML编写,使用Jinja2进行排版。

Ansible支持Python 2.6和2.7版本,可以通过pip安装:

$ pip install ansible

Ansible需要一个目录文件来描述它可以访问的主机。下面是一个主机和能ping通库存文件中所有主机的文件。

下面是一个示例目录文件:

剩余内容已隐藏,支付完成后下载完整资料


英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[595998],资料为PDF文档或Word文档,PDF文档可免费转换为Word

社区管理系统的设计与实现

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。