I'd like to move my Teamcity server to a new machine, going from one Linux box to another. I'm already using an external MySQL database, so connecting the new machine to the DB once the old Teamcity instance is shut down will be simple. My question is, rather than using maintainDB to get some of the other backup information to move over, can I simply shutdown the old instance, rsync the .BuildServer directory on the old machine to my $TEAMCITY_DATA_ROOT directory on the new server so that they are identical (including the artifacts, etc.), set up the Teamcity.war in the new Tomcat, and then fire up the new server? I typically use the .war distribution deployed to Tomcat rather than the .tar.gz release.
In case it's important, my current data root is the default $HOME/.BuildServer and the Teamcity server is installed in $HOME/tomcat/webapps; on the new machine it will be /opt/teamcity/BuildServer and /opt/teamcity/tomcat.
I also have one additional question: I am currently using the built-in Teamcity authentication, but I would like to switch to authenticating via Active Directory. I saw that my existing users will be dropped when I make the switch; will my role and group structures be dropped as well or will they be preserved (i.e., will I still have "Role A" or "Group 3" with existing permissions intact but without users assigned to them)?
Syncing .BuildServer and database are all you need form TeamCity perspective.
Please also make sure you transfer all the related environment like environment variables, files that are configurd in TeamCity configuration (if any), logging settings configured in Tomcat's "config" directory, etc.
Details instructions can be found in the doc.
As to switching to another authentication scheme: settings of roles and groups are preserved.