Como ser um bom administrador de team foundation server vinicius moura
-
Upload
vinicius-moura -
Category
Technology
-
view
439 -
download
1
description
Transcript of Como ser um bom administrador de team foundation server vinicius moura
ALM Summit Brasil 2014
ALM Summit Brasil 2014
Como ser um bom administrador de Team
Foundation Server
Vinicius Moura
@vinijmoura
ALM Rangers
MCSD ALM
ALM Summit Brasil 2014
Para aprender e/ou recordar
API
Camada de Aplicação(“Application Tier”)
Camada de Cliente(“Client Tier”)
Camada de Dados(“Data Tier”)
Visual Studio
Eclipse
WindowsExplorer
Linha decomando
MicrosoftExcel
MicrosoftProject
Aplicações
ALM Summit Brasil 2014
Como administrar um ou mais servidor(es) de vários “pais”?
Data Tier App Tier Proxy Server Build Server
O que eu faço com esse monte de servidores?
ALM Summit Brasil 2014
Backup das bases de dados• Cenário 2 – Backup
Admin Console
http://msdn.microsoft.com/en-us/library/hh561429.aspx
Vamos facilitar a sua vida?
• Cenário 1 – Backup Trivial• Tfs_Configuration• Tfs_Collection – 1 à
“N”• Tfs_Warehouse• ReportServer (2
bases)• SharePoint (3 bases)
ALM Summit Brasil 2014
Process TemplatesDica importante: faça o versionamento do Process Template da sua empresa
ALM Summit Brasil 2014
Process TemplatesCenário do caos: Eu preciso atualizar 700 Team Projects para a inclusão de um novo campo no Work Item Type Bug• Resolução 1 – Utilizar o Process Template
Editor e repetir o processo 700 vezes ;-)
ALM Summit Brasil 2014
Process Templates• Resolução 2 – Utilizar a ferramenta TFS
Administrators Toolkit http://visualstudiogallery.msdn.microsoft.com/33713c5d-31a3-44b3-ae94-3c413e6b21c7
ALM Summit Brasil 2014
Process Templates• Resolução 3 – Linha de comando witadmin
importwitd
Select na tabela tbl_Project da tfs_Collection
Salvar os nomes dos Team Projects em um arquivo txt
Executar a linha de comando witadmin importwitd
ALM Summit Brasil 2014
Process Templates
witadmin importwitd /collection:collectionurl [/p:project] /f:filename /v
FOR /F "tokens=1" %i in (C:\temp\projetos.txt) DO witadmin importwitd /collection:http://vinimoura-pc:8080/tfs/DefaulCollection /p:%i /f:"D:\Desktop\Microsoft Visual Studio Scrum 2013.3\WorkItem Tracking\TypeDefinitions\Bug.xml" /v > C:\temp\%i.txt
ALM Summit Brasil 2014
Grupos e UsuáriosPermissionamento de usuários
TFSSecurity /imx <identity> /collection:http://myservertfs:8080/tfs/Collection
ALM Summit Brasil 2014
Grupos e UsuáriosAuditoria de usuários no TFS 2013
ALM Summit Brasil 2014
A tabela tbl_command
• Tabela de acessos ao TFS• Command• Start Time• Execution Time• IdentityName• IP• UserAgent
A tabela tbl_command é limpa a cada 14 dias :(
ALM Summit Brasil 2014
A tabela tbl_commandCenário 1: Como listar as versões de Visual Studio que se conectam ao meu TFS?
SELECT DISTINCT UserAgentFROM tbl_CommandORDER BY UserAgent
ALM Summit Brasil 2014
A tabela tbl_commandCenário 2: Performance dos comandos executados
ALM Summit Brasil 2014
Scripts Power ShellCenário 1: Criar branches
param( [string] $ServerFolderLocation )
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null ){ Add-PSSnapin Microsoft.TeamFoundation.PowerShell}
$CollectionURI="http://myserver/tfs/myCollection"$tfs=Get-TfsServer -name $CollectionURI$TfExePath = "C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\TF.exe"$match="TRUNK"
foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) {
if ($item -match $match){
$branchpath = $item.ServerItem -replace "TRUNK", "BRANCHES"$branchpath = $branchpath& "$TfExePath" branch $item.ServerItem $branchpath /version:T
/checkin /comment:"Created Branch"}
}
ALM Summit Brasil 2014
Scripts Power ShellCenário 2: Converter pastas em branches
param( [string] $ServerFolderLocation )
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null ){ Add-PSSnapin Microsoft.TeamFoundation.PowerShell}
$CollectionURI="http://myserver/tfs/myCollection"$tfs=Get-TfsServer -name $CollectionURI$TfptExePath = "C:\Program Files\Microsoft Team Foundation Server 2013 Power Tools\TFPT.exe"$match="TRUNK"
foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) {
if ($item -match $match){
& "$TfptExePath" branches /convertToBranch /collection:$CollectionURI /description:"Convert to Branch" $item.ServerItem
} }
ALM Summit Brasil 2014
Scripts Power ShellCenário 3: Criar work Itens
param( [string] $ServerFolderLocation )
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null ){ Add-PSSnapin Microsoft.TeamFoundation.PowerShell}
$CollectionURI="http://myserver/tfs/myCollection"$tfs=Get-TfsServer -name $CollectionURI$TfptExePath = "C:\Program Files\Microsoft Team Foundation Server 2013 Power Tools\TFPT.exe"$match=“BRANCHES"
foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) {
if ($item -match $match){
$title = $item.ServerItem$description = "Primeiro checkin - " + $title& "$TfptExePath" workitem /new myProject\User Story /collection:
$CollectionURI /Fields:"Title=$title;Description=$description" }
}
ALM Summit Brasil 2014
Scripts Power ShellCenário 4: Permissionamento de Pastas
param( [string] $ServerFolderLocation )
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null ){ Add-PSSnapin Microsoft.TeamFoundation.PowerShell}
$CollectionURI="http://myserver/tfs/myCollection"$tfs=Get-TfsServer -name $CollectionURI$TfExePath = "C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\TF.exe"$match="BRANCHES"
foreach ($item in Get-TfsChildItem $ServerFolderLocation -f -r -server $tfs) {
if ($item -match $match){
& "$TfExePath" permission /allow:"checkin,pendchange,merge" /group:Contributors/collection:$CollectionURI $item.ServerItem
} }
ALM Summit Brasil 2014
Gerenciamento de BuildsCenário 1: Meu build controller morreu e preciso executar o reapontamento de 200 Build Definitions
TFS Community Build Manager - http://visualstudiogallery.msdn.microsoft.com/73bf2d8e-aec6-406c-8e7f-1c678e46557f
ALM Summit Brasil 2014
O “rei” dos Plug-ins – Neno Loje
tfsRefresWarehousetfsSyncIdentities
http://blogs.msmvps.com/vstsblog/2014/05/05/updated-tools-for-tfs-2013/
ALM Summit Brasil 2014
ALM Rangers• Solutions – http://aka.ms/vsarsolutions• Widgets – http://aka.ms/widgets
ALM Summit Brasil 2014
ALM Summit Brasil 2014
Obrigado!
@vinijmoura
http://blog.lambda3.com.br/L3/viniciusmoura/