这篇文章将会以实例形式一步步的来说明如何开发一个简单的自动化服务器
新建一个普通的应用程序 将工程保存为AutoSrv bpr 在主窗体上放一个Edit控件 并保存为MainForm pas 在这里我们打算给这个程序加上对窗口标题 窗体颜色 和Edit控件文本的自动化控制(当然这实现的功能很少 但对于讲解如何开发自动化服务器程序足够了) 在主窗口中加入如下代码:(注意:请自行将这些函数和过程的声明加入TForm 的public区)function TForm GetCaption: stringbeginresult := Self Captionend
procedure TForm SetCaption(ACaption: string)beginSelf Caption := ACaptionend
procedure TForm SetColor(AColor: TColor)beginSelf Color := AColorend
procedure TForm SetEditText(AText: string)beginSelf Edit Text := ATextend然后我们来给这个程序加上自动化的功能 点击New Items按钮 在弹出的New Items窗口中点击ActiveX选项卡 选择Automation Object点击OK按钮 在弹出的Automation Object Wizard窗口中CoClass Name一项中输入MyAutoSrv Delphi就会自动生成一个AutoSrv_TLB pas文件(类库)和实现类库接口类的单元 将这个新的单元保存为AutoSrvClass pas.
现在这个程序已经成为一个自动化服务器了 我们再来为其加上自动化的接口函数:( )点击View >Type Libray菜单 在Type Library Editor选择IMyAutoSrv接口 点击New Property 选择其属性为Read|Write 并把其命名为Caption Type设定为BSTR ( )点击New Method 将其命名为SetColor 点击右边的Parameters选项卡 点击ADD为新添的接口函数添加一个参数 将参数名设为AColor 参数Type设为OLE_COLOR ( )再次点击New Method 将其命名为SetEditText 以上面的方法为其添加一个参数 将参数名设为AText 参数Type设为BSTR
最后添加上接口函数的实现代码就OK了:在AutoSrvClass pas的Uses部分添加上MainForm 并将其代码改为如下代码 unit AutoSrvClass
{$WARN SYMBOL_PLATFORM OFF}
interface
usesComObj ActiveX AutoSrv_TLB StdVcl MainForm
typeTMyAutoSrv = class(TAutoObject IMyAutoSrv)protectedfunction Get_Caption: WideStringsafecallprocedure Set_Caption(const Value: WideString)safecallprocedure SetColor(AColor: OLE_COLOR)safecallprocedure SetEditText(const AText: WideString)safecall
end
implementation
uses ComServ
function TMyAutoSrv Get_Caption: WideStringbeginResult := Form GetCaptionend
procedure TMyAutoSrv Set_Caption(const Value: WideString)beginForm SetCaption(Value)end
procedure TMyAutoSrv SetColor(AColor: OLE_COLOR)beginForm SetColor(AColor)end
procedure TMyAutoSrv SetEditText(const AText: WideString)beginForm SetEditText(AText)end
initializationTAutoObjectFactory Create(ComServer TMyAutoSrv Class_MyAutoSrv ciMultiInstance tmApartment)end 运行这个程序一次 将会自动注册为自动化服务器 可以在注册表中的HKEY_CLASSES_ROOT主键下面找到其相关的注册信息
上面演示了如何开发一个自动化服务器 在这里我们将调用它 新建一个程序 添加一个Button 在其VAR区声明一个Variant变量: AutoSrv: variant再在Button 中添加如下代码 procedure TForm Button Click(Sender: TObject)beginAutoSrv := CreateOleObject( AutoSrv MyAutoSrv ){这个字符串就是自动化服务器的工程名加上CoClass Name}Self Caption := AutoSrv CaptionAutoSrv Caption := HEHE AutoSrv SetColor(CLRed)AutoSrv SetEditText( HAHA )end其中的CreateOleObject函数将会返回一个IDispatch类型的接口 正是IDispatch接口让我们的程序可以对自动化服务器接口的调用进行后期连接 比如我们在上面添加一句AutoSrv Hello 程序也能被编释通过 但在执行时就会出错 使用Variant在执行效率上会比直接使用接口声明要慢一些 运行并点击按钮 可以看到自动化服务程序被加载 并按我们的代码设置了窗体色和EDIT 中的字串 呵呵 是不是很简单啊?
lishixinzhi/Article/program/Delphi/201311/24993第一步 - 安装 Java OpenJDK 7
Jenkins 基于 Java,因此我们需要在服务器上安装 Java OpenJDK 7。在这里,我们会从一个 PPA 仓库安装 Java 7,首先我们需要添加这个仓库。
默认情况下,Ubuntu 16.04 没有安装用于管理 PPA 仓库的 python-software-properties 软件包,因此我们首先需要安装这个软件。使用 apt 命令安装 python-software-properties。
apt-get install python-software-properties
下一步,添加 Java PPA 仓库到服务器中。
add-apt-repository ppa:openjdk-r/ppa
用 apt 命令更新 Ubuntu 仓库并安装 Java OpenJDK。
apt-get update
apt-get install openjdk-7-jdk
输入下面的命令验证安装:
java -version
你会看到安装到服务器上的 Java 版本。
第二步 - 安装 Jenkins
Jenkins 给软件安装包提供了一个 Ubuntu 仓库,我们会从这个仓库中安装 Jenkins。
用下面的命令添加 Jenkins 密钥和仓库到系统中。
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo 'deb https://pkg.jenkins.io/debian-stable binary/' | tee -a /etc/apt/sources.list
更新仓库并安装 Jenkins。
apt-get update
apt-get install jenkins
安装完成后,用下面的命令启动 Jenkins。
systemctl start jenkins
通过检查 Jenkins 默认使用的端口(端口 8080)验证 Jenkins 正在运行。我会像下面这样用 netstat 命令检测:
netstat -plntu
Jenkins 已经安装好了并运行在 8080 端口。
第三步 - 为 Jenkins 安装和配置 Apache 作为反向代理
在这篇指南中,我们会在一个 Apache web 服务器中运行 Jenkins,我们会为 Jenkins 配置 apache 作为反向代理。首先我会安装 apache 并启用一些需要的模块,然后我会为 Jenkins 用域名 my.jenkins.id 创建虚拟主机文件。请在这里使用你自己的域名并在所有配置文件中出现的地方替换。
从 Ubuntu 仓库安装 apache2 web 服务器。
apt-get install apache2
安装完成后,启用 proxy 和 proxy_http 模块以便将 apache 配置为 Jenkins 的前端服务器/反向代理。
a2enmod proxy
a2enmod proxy_http
下一步,在 sites-available 目录创建新的虚拟主机文件。
cd /etc/apache2/sites-available/
vim jenkins.conf
粘贴下面的虚拟主机配置。
<Virtualhost *:80>
ServerNamemy.jenkins.id
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8080/*>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://my.jenkins.id/
</Virtualhost>
保存文件。然后用 a2ensite 命令激活 Jenkins 虚拟主机。
a2ensite jenkins
重启 Apache 和 Jenkins。
systemctl restart apache2
systemctl restart jenkins
检查 Jenkins 和 Apache 正在使用 80 和 8080 端口。
netstat -plntu
第四步 - 配置 Jenkins
Jenkins 用域名 'my.jenkins.id' 运行。打开你的 web 浏览器然后输入 URL。你会看到要求你输入初始管理员密码的页面。Jenkins 已经生成了一个密码,因此我们只需要显示并把结果复制到密码框。
用 cat 命令显示 Jenkins 初始管理员密码。
cat /var/lib/jenkins/secrets/initialAdminPassword
a1789d1561bf413c938122c599cf65c9
将结果粘贴到密码框然后点击 Continue。
现在为了后面能比较好的使用,我们需要在 Jenkins 中安装一些插件。选择 Install Suggested Plugin,点击它。
Jenkins 插件安装过程:
安装完插件后,我们需要创建一个新的管理员密码。输入你的管理员用户名、密码、电子邮件等,然后点击 'Save and Finish'。
点击 start 开始使用 Jenkins。你会被重定向到 Jenkins 管理员面板。
成功完成 Jenkins 安装和配置。
第五步 - Jenkins 安全
在 Jenkins 管理员面板,我们需要为 Jenkins 配置标准的安全,点击 'Manage Jenkins' 和 'Configure Global
Security'。
Jenkins 在 'Access Control' 部分提供了多种认证方法。为了能够控制所有的用户权限,我选择了 'Matrix-based Security'。在复选框 'User/Group' 中启用 admin 用户。通过勾选所有选项给 admin 所有权限,给 anonymous 只读权限。现在点击 'Save'。
你会被重定向到面板,如果出现了登录选项,只需输入你的管理员账户和密码。
第六步 - 测试一个简单的自动化任务
在这一部分,我想为 Jenkins 服务测试一个简单的任务。为了测试 Jenkins 我会创建一个简单的任务,并用 top 命令查看服务器的负载。
在 Jenkins 管理员面板上,点击 'Create New Job'。
输入任务的名称,在这里我输入 'Checking System',选择 Freestyle Project 然后点击 OK。
进入 Build 标签页。在 Add build step,选择选项 Execute shell。
在输入框输入下面的命令。
top -b -n 1 | head -n 5
点击 Save。
现在你是在任务 'Project checking system' 的任务页。点击 Build Now 执行任务 'checking system'。
任务执行完成后,你会看到 Build History,点击第一个任务查看结果。
下面是 Jenkins 任务执行的结果。
到这里就介绍完了在 Ubuntu 16.04 中用 Apache web 服务器安装 Jenkins 的内容。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)