我在计算机A 上部署了一个网站(站点A ),这取决于部署在< strong>机器B 。
A机和B机在同一个部署组中,按标签(分别为{#define N 800000
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <chrono>
using namespace std;
void Exchange(int *a, int *b) {
int temp;
temp = *a;
*a = *b;
*b = temp;
}
int Partition(int A[], int p, int r) {
int x = A[r];
int i = p - 1;
for (int j = p; j <= r; j++) {
if (A[j] < x) {
i++;
Exchange(&A[i], &A[j]);
}
}
Exchange(&A[i + 1], &A[r]);
return i + 1;
}
int RPartition(int A[], int p, int r) {
srand(time(NULL));
int i = p + rand() % (p - r);
Exchange(&A[i], &A[r]);
return Partition(A, p, r);
}
void QuickSort(int A[], int p, int r) {
if (p < r) {
int q = RPartition(A, p, r);
QuickSort(A, p, q - 1);
QuickSort(A, q + 1, r);
}
}
void Stampa(int A[], int n) {
for (int i = 0; i < n; i++) {
cout << A[i] << "\n";
}
}
int main() {
srand(50000);
int A[N];
for (int i = 0; i < N; i++) {
A[i] = rand();
}
cout << "Array non ordinato\n";
Stampa(A, N);
auto start = std::chrono::system_clock::now();
QuickSort(A, 0, N - 1);
auto end = std::chrono::system_clock::now();
cout << "\nArray ordinato\n";
Stampa(A, N);
std::chrono::duration<double> elapsed = end - start;
cout << "Elapsed time: " << elapsed.count() << "s";
}
和App
)进行区分,并且我有2个部署阶段(每个标签一个)将代码推送到各自的盒子
我需要在站点A的配置中写入一个值,以告诉它服务B的位置。
是否有一种方法可以发现服务B部署到的计算机的名称,以使部署真正保持动态?
换一种说法,我可以发现具有给定部署标签的计算机的名称并将其用于变量中吗?
我尝试在部署代理上运行本地Powershell来更新变量,但是该更新似乎无法将其返回给控制代理,因此它无法在计算机之间传递值。
我的后退只是使用已知的服务器名称并将值写入配置中,但考虑到系统其余部分的动态性,这感觉像是一次巨大的黑客攻击。
我正在使用TFS 2018本地-基于GUI的部署管道(没有YAML)
答案 0 :(得分:1)
有predefined agent variables允许您在管道中引用计算机名称。
1,例如,可以通过将预定义变量包装在“ $()”中来引用计算机名称。 <script>
export default {
name: "container",
data() {
return {
showLabel: false,
container: "Container here ..."
};
},
methods: {
highlightIn(){
this.showLabel = true;
},
highlightOut(){
this.showLabel = false;
}
}
};
</script>
此方法将从代理功能中的Agent.Name属性获取代理名称。
2,还有另一个解决方法。您还可以在脚本下面的脚本中添加powershell任务,以获取承载代理和assign it to a variable的本地计算机名称。
您需要在管道的“变量”标签中定义一个变量(例如,MachineName)
"$(Agent.MachineName)" or "$(Agent.Name)"
第二种方法将从本地计算机的属性中获取计算机名称。