como ser um bom administrador de team foundation server vinicius moura

22
ALM Summit Brasil 2014 ALM Summit Brasil 2014 Como ser um bom administrador de Team Foundation Server Vinicius Moura [email protected] @vinijmoura ALM Rangers MCSD ALM

Upload: vinicius-moura

Post on 05-Dec-2014

441 views

Category:

Technology


1 download

DESCRIPTION

Palestra do ALM Summit Brasil 2014

TRANSCRIPT

Page 1: 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

[email protected]

@vinijmoura

ALM Rangers

MCSD ALM

Page 2: Como ser um bom administrador de team foundation server   vinicius moura

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

Page 3: Como ser um bom administrador de team foundation server   vinicius moura

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?

Page 4: Como ser um bom administrador de team foundation server   vinicius moura

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)

Page 5: Como ser um bom administrador de team foundation server   vinicius moura

ALM Summit Brasil 2014

Process TemplatesDica importante: faça o versionamento do Process Template da sua empresa

Page 6: Como ser um bom administrador de team foundation server   vinicius moura

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 ;-)

Page 7: Como ser um bom administrador de team foundation server   vinicius moura

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

Page 8: Como ser um bom administrador de team foundation server   vinicius moura

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

Page 9: Como ser um bom administrador de team foundation server   vinicius moura

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

Page 10: Como ser um bom administrador de team foundation server   vinicius moura

ALM Summit Brasil 2014

Grupos e UsuáriosPermissionamento de usuários

TFSSecurity /imx <identity> /collection:http://myservertfs:8080/tfs/Collection

Page 11: Como ser um bom administrador de team foundation server   vinicius moura

ALM Summit Brasil 2014

Grupos e UsuáriosAuditoria de usuários no TFS 2013

Page 12: Como ser um bom administrador de team foundation server   vinicius moura

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 :(

Page 13: Como ser um bom administrador de team foundation server   vinicius moura

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

Page 14: Como ser um bom administrador de team foundation server   vinicius moura

ALM Summit Brasil 2014

A tabela tbl_commandCenário 2: Performance dos comandos executados

Page 15: Como ser um bom administrador de team foundation server   vinicius moura

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"}

}

Page 16: Como ser um bom administrador de team foundation server   vinicius moura

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

} }

Page 17: Como ser um bom administrador de team foundation server   vinicius moura

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" }

}

Page 18: Como ser um bom administrador de team foundation server   vinicius moura

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

} }

Page 20: Como ser um bom administrador de team foundation server   vinicius moura

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/

Page 21: Como ser um bom administrador de team foundation server   vinicius moura

ALM Summit Brasil 2014

ALM Rangers• Solutions – http://aka.ms/vsarsolutions• Widgets – http://aka.ms/widgets

Page 22: Como ser um bom administrador de team foundation server   vinicius moura

ALM Summit Brasil 2014

ALM Summit Brasil 2014

Obrigado!

[email protected]

@vinijmoura

http://blog.lambda3.com.br/L3/viniciusmoura/