I created on the average 2 servers a week and plenty of roles ...
I am using Otter for configuration management and script deployment so I need a lot of nested roles for the Linux and Windows servers.
I also add/change frequently role variables.
Posts made by philippe.camelio_3885
-
RE: Buildmaster - High CPU database since 6.2.22
-
RE: Buildmaster - High CPU database since 6.2.22
SELECT [ExecutionType_Name], COUNT(*) FROM [ManualExecutions] GROUP BY [ExecutionType_Name]
After my last post I purged again the table and it did not increase today. - no rollback I am pretty sure
I put again Sync Infra to 1 hour and ran the to following SQL
use BuildMaster SELECT [ExecutionType_Name], COUNT(*) FROM [ManualExecutions] GROUP BY [ExecutionType_Name] SELECT [ExecutionMode_Code], COUNT(*) FROM [BuildMaster]..[Executions] GROUP BY [ExecutionMode_Code]
we will see tomorrow
anyway thank you for your time :)
-
RE: Buildmaster - High CPU database since 6.2.22
I put some new screenshoots
and a lot of this kind of msg
In 10 hours:
- ScopedExecutionLogentries x 20 (600k -> 12M)
- ScopedExecutionLogs : x 34
- ManualExecutions x 164
I set Service.AgentUpdaterThrottle to -1
I also increase to 1 hour in order to reduced log.
I will check tomorrow morning
-
RE: Buildmaster - High CPU database since 6.2.22
@atripp
I disabled the Infrastructure sync.
Then I clean up the tableTable size before
Disable Infrastructure sync
Stop buildmaster
Cleanup
Table size after
Restart buildmaster
I will check tomorrow about the size and let you know
Thanks
-
RE: Buildmaster - High CPU database since 6.2.22
@atripp said in Buildmaster - High CPU database since 6.2.22:
Importing or Exporting Applications **==> ** never done this **
Cloning and Applying Template to Applications **==> ** one time a month maximum ****
Sync of Issue Sources ==> Not sure what this is about ???
Deploying Configuration file **==> ** No ****
Upgrading Inedo Agents ==> done by Otter in my case
Sync infrastructure ==> Used to sync every 2 hours from Otter. I increased since the last post to one dayI have about 100-110 servers (Linux / windows) sync from Otter, whereas I am using a just a few for deploying application (about 25 actually).
I have plenty of RoleIt could be Sync infrastructure, any way to check ?
-
RE: Buildmaster - High CPU database since 6.2.22
This is what is happening if I force Manual Execution Cleanup to run.
The stop of the BuildMaster Service solved the problem, but BM is down :(To be more complete, here is the steps I followed
1 Execution of the delete script
2 Restart buildmaster
4 Start Manual Execution Cleanup ==> Problem occurs
4 Start Manual Execution Cleanup ==> Problem occurs -
RE: Buildmaster - High CPU database since 6.2.22
@atripp
Unfortunately, it is disturbing.I join 2 screenshoot about the impact of the delete sql and it is happening during working hours.
I find that deleting several hours of CPU and IO for only 102 purged executions take too long
As I said, the problem exists since release 6.2.22.
I stopped all retention policies,
The problem occurs when the Manual Execution Cleanup is running
==============
I ran again your code:
Before the execution:After
(255268 rows affected) Completion time: 2021-01-30T22:06:02.9603752+01:00
SELECT [ExecutionMode_Code], COUNT(*) FROM [Executions] GROUP BY [ExecutionMode_Code]
I set Retention.KeepLastManualExecutionCount to 50.
I will see what is going on
Best Regards
PhilippePS - Thanks for the help
-
RE: Buildmaster - High CPU database since 6.2.22
The request still eating all my CPU :(
-
RE: Buildmaster - High CPU database since 6.2.22
I had to stop SQL Instance, Restart BM Service
Everything looks fine -
RE: Buildmaster - High CPU database since 6.2.22
Buildmaster is broken
Time out when I try to get an access to BM.I reboot unsuccessfully
but the Database is clean
R 1000 M 1000 S 1586 T 380 B 1025
-
RE: Buildmaster - High CPU database since 6.2.22
I have this error msg from SQL Management Studio or from osql
Msg 4108, Level 15, State 1, Line 7 Les fonctions fenêtrées peuvent uniquement apparaître dans les clauses SELECT ou ORDER BY
I am not good enough in SQL to overcome this. Any tricks ?
-
RE: OTTER 3.0 / Fresh install Install with remote DB from InedoHub failed on non-US system
I had such problem with localized account with a lot of software :)
Managing the [Otter / Buildmaster / Proget] service Account from the InedoHub would be nice.
Philippe
-
RE: Buildmaster - High CPU database since 6.2.22
@atripp
Houps !About the retention policies, when I start them manually, they remove few lines.
Here is the result of the SQL:
R 91369
M 164051
S 1560
T 377
B 999Thanks
Philippe -
RE: OTTER 3.0 - Git Based-Raft ?
Hello @atripp
That what I thought about git so I installed the extension.
I will reinstall the extension, and I will update the post
Philippe
-
RE: OTTER 3.0 - Agent type SSH
Hey @atripp
I know this is still a beta.
Happy to help you
Philippe -
OTTER 3.0 - Agent type SSH
Hello again.
Linux server created as SSH did not work, the field hostName is missing while it exists in Inedo Agent
Script failed when submitting with the errorUnhandled exception: System.ArgumentNullException: La valeur ne peut pas être null. Nom du paramètre : hostName à Inedo.Agents.Ssh.SshConnectionInfo..ctor(String hostName, String tempPath, SshCredentials credentials, Nullable`1 timeout, Int32 port) à Inedo.Otter.Service.Agents.SshAgentConnection.<CreateAsync>d__9.MoveNext()
-
RE: OTTER 3.0 / Fresh install Install with remote DB from InedoHub failed on non-US system
Hi,
I succeed to install it.
The steps I have done:- Create Database on the Remote server with correct collation
- Create file Otter.config in %PROGRAMDATA%\Inedo\SharedConfig
<?xml version="1.0" encoding="utf-8"?> <InedoAppConfig> <ConnectionString>Data Source=MYSQLSERVER\MYINSTANCE;Initial Catalog=MYDATABASE;Integrated Security=True</ConnectionString> <EncryptionKey>***SOME ENCRYPTION KEY ***</EncryptionKey> <WebServer Enabled="false" Urls="http://*:8626/" /> </InedoAppConfig>
- Create the Inedo Service with the command:
otter.service.exe install
At this point, nothing is running.
- Run InedoHub,
-- Select Uninstall
this will clean the existing installation
-- Select Install
as the DB is already existing, everything is OK
*In my config, the Otter service have to run with a domain account which owns the Otter DB on the remote server
During the installation, InedoHub is waiting for the service to start.
- Go to the Service Manager, change the Service account and start the Service.
- Change the IIS AppPool with the same account used for the Otter Service
Et voilà !
But, if you create the Database before installing Otter, this should make the installation correctly.
I know it is a little bit messy, I hope this will help if someone meet the same problem
-
RE: Buildmaster - High CPU database since 6.2.22
@atripp said in Buildmaster - High CPU database since 6.2.22:
what are the types of Executions in that table? Manual? Build? Etc?
Sorry, I am not sure to understand what you expect.
I guess every log - manual / build / deployement.I have setup this in the Administration part:
- Diagnostics.MinimumLogLevel : 20
- Retention.KeepLastManualExecutionCount: 1000
I have 3 Retention policies:
- Delete deployed release Retain 180 days
- Delete artifacts for rejected build : Retain 30 days
- Delete execution logs : retain 30 days
Therefore, logs haven't been removed for more than 36 month !!!
I have the same in ScopedExecutionsLogEntriesSELECT TOP (10) [Execution_Id] ,[LogEntry_Sequence] ,[Scope_Sequence] ,[LogEntry_Level] ,[LogEntry_Date] FROM [Otter].[dbo].[ScopedExecutionLogEntries]
Execution_Id LogEntry_Sequence Scope_Sequence LogEntry_Level LogEntry_Date 14 1 1 0 2019-04-02 09:09:23.500 14 2 1 0 2019-04-02 09:09:23.500 14 3 1 10 2019-04-02 09:09:23.500
-
OTTER 3.0 / Fresh install Install with remote DB from InedoHub failed on non-US system
Hello
Just to let you know that Installation of Otter 3.0 from scratch with DB on remote Server failed at the DB step due to wrong account.- You should allow to specify the service account
- you should use the SID - S-1-5-2 of "NT Authority\Network service" to grab the "real" name to match for non US system to avoid an error during the setup.
On french system "NT Authority\Network service" is "AUTORITE NT\RESEAU"
=======
** (unnamed scope) ** ** (unnamed scope) ** ** Stop $ServiceName service ** INFO: Stopping service INEDOOTTERSVC... INFO: Service INEDOOTTERSVC does not exist. ** Stop $WebServiceName service ** INFO: Stopping service INEDOOTTERWEBSVC... INFO: Service INEDOOTTERWEBSVC does not exist. ** Sleep for 5 seconds ** INFO: Sleeping for 5 seconds... INFO: Done sleeping. ** Deploy Program Files ** ** Deploy package to $WorkingDirectory ** DEBUG: Deploying D:\Otter\Extensions\InedoCore.upack... ... DEBUG: Deploying D:\Otter\Web\bin\System.ValueTuple.dll... ** Write SQL Connection String to $DbConnectionString ** ** Create Database ** ** Ensure SQL Database $DbName Exists on <unknown> ** DEBUG: Attempting to connect to *********\INEDO using Initial Catalog=OTTER3... DEBUG: Could not connect using Initial Catalog=OTTER3. DEBUG: Executing script: CREATE DATABASE [OTTER3] COLLATE SQL_Latin1_General_CP1_CI_AS... DEBUG: Executing script: USE [OTTER3];... DEBUG: Executing script: CREATE USER [NT AUTHORITY\NETWORK SERVICE] FOR LOGIN [NT AUTHORITY\NETWORK SERVICE]... ERROR: Unhandled exception: System.Data.SqlClient.SqlException (0x80131904): Utilisateur ou groupe Windows NT 'NT AUTHORITY\NETWORK SERVICE' introuvable. Vérifiez une nouvelle fois le nom ..... Error Number :15401,State :1,Class :16
Best regards
-
RE: Buildmaster - High CPU database since 6.2.22
Hello @atripp
This the Manual Execution Cleanup.This process is really annoying.
You have no SQL scripts to cleanup the table ?
-
RE: Buildmaster - High CPU database since 6.2.22
Hi @atripp
The problem is stil present.
Do you have any magic sql scripts to purge my huge tables ?
Thanks in advance -
RE: Buildmaster - High CPU database since 6.2.22
Hello @atripp
I repaired the index, and it seems to help :)
I let you know what I still have the problemBest Regards
PhilippeC. -
Buildmaster - High CPU database since 6.2.22
Hello
The SQL Serve is anormally overloaded since release 6.2.22.
One request :
DELETE [Executions]
WHERE [Execution_Id] = @Execution_Id
seems to impact a lot the serverI have seen two big table (7 Go and 12 Go):
dbo.ScopedExecutionLogs / dbo.ScopedExecutionLogEntriesany advice is welcome
Best regards
Philippe -
RE: SQL Xpress raise 10 Gb for BM DB and during upgrade BM 6.2.20 it breaks the BM Service :(
ManualExecutions: 162 K records / 8 Go of data
ScopedExecutionsLogsentries : 1099K records / 1.3 Go ofdata -
RE: SQL Xpress raise 10 Gb for BM DB and during upgrade BM 6.2.20 it breaks the BM Service :(
Thanks @atripp, I made some space using using script based on your SQL and
I succeed to reinstall the service (thanks @rhessinger - cmd console has to be in admin mode).
I purged more logs from BM itself.
Therefore, the dbo.ManualExecutions did not change a lot .I did not found a way to purge it from BM.
any Sql available ? - I made a test where I truncated the table and it was a very bad idea :)
-
RE: SQL Xpress raise 10 Gb for BM DB and during upgrade BM 6.2.20 it breaks the BM Service :(
I have seen the dbo.ManualExecutions is the largest table 8 Go ....
It contains mainly Infrastructure sync infoCan I clear it safely ?
-
RE: SQL Xpress raise 10 Gb for BM DB and during upgrade BM 6.2.20 it breaks the BM Service :(
@atripp
Thanks a lot.I will try this to restore BM access
I had a plan to move to SQL Std, I will do it -
RE: SQL Xpress raise 10 Gb for BM DB and during upgrade BM 6.2.20 it breaks the BM Service :(
Hi
I haven't seen your answer.
I modify the topic as it is a DB problem not related to the upgrade
thanks for the fast replyI think if I clean the DB, bmservice will work.
Any sql magic command to clean the DB ?
-
SQL Xpress raise 10 Gb for BM DB and during upgrade BM 6.2.20 it breaks the BM Service :(
Hello
I upgraded BM to 6.2.20 from 6.2.19 and the service Buildmaster is gone :(
I haven't seen the DB BuildMaster on the SQL Xpress was up to the 10 Gb limit.any help is welcome
Best Regards
PhilippeC.
-
RE: Ensure-DSC and Module version
Hi @rhessinger
Sorry for the delayYes this is exactly what it should be.
-
OTTER: Error when using module from default asset to plan from an other asset
Hello
By default, the module from the default asset are not suffixed by Default:: when you select it form the visual editor.
when you use it from a plan located in a different asset, you have the error : Unable to resolve method: *******
One should search in the default asset when the asset is not defined for the module to avoid the pb
or you must add default:: suffixe when you select a module form the UI - I think :-)Test case:
In the default asset :
Create a module Test##AH:UseTextMode module test { Log-Debug Module from Default Asset; }
In a test asset (in my case it is a Git Repository)
Create a Plan TestPlan
Select Test module from graphic mode##AH:UseTextMode call test();
Execution fail
DEBUG: 2020-10-07 20:42:25Z - Job 1675 directly targets 1 server(s) by name. DEBUG: 2020-10-07 20:42:25Z - Skipping collection run; execute only. INFO : 2020-10-07 20:42:25Z - Collection run succeeded. DEBUG: 2020-10-07 20:42:25Z - Beginning execution run... ERROR: 2020-10-07 20:42:26Z - Unable to resolve method: test DEBUG: 2020-10-07 20:42:26Z - Cleaning up temporary files on Inedo Agent (v??, VM000037:46336)...
Edit the Plan and add asset suffix to the module (in text mode)
##AH:UseTextMode call default::test();
Execution succeed
DEBUG: 2020-10-07 20:47:50Z - Job 1676 directly targets 1 server(s) by name. DEBUG: 2020-10-07 20:47:50Z - Skipping collection run; execute only. INFO : 2020-10-07 20:47:50Z - Collection run succeeded. DEBUG: 2020-10-07 20:47:50Z - Beginning execution run... DEBUG: 2020-10-07 20:47:50Z - Module from Default Asset INFO : 2020-10-07 20:47:50Z - Execution run succeeded. DEBUG: 2020-10-07 20:47:50Z - Cleaning up temporary files on Inedo Agent (v??, VM000037:46336)...
Hope this help
OTTER Version 2.2.23 (Build 1)
Best regards
PhilippeC. -
RE: OTTER 2.22 - Variable inheritance between dependant roles
@atripp
Good news
Thank you -
RE: Ensure-DSC and Module version
The Invoke-DscRessource allows this.
Ensure-DSC should be improved, if possible. It's been a long time since Otter was updatedInvoke-DscResource -Method Test -Name WindowsFeature -Property @{Name='RSAT-AD-PowerShell'; IncludeAllSubFeature=$true; ensure='Present'} -ModuleName @{ModuleName=’PSDscResources’; ModuleVersion=2.2.0.0’} -Verbose
As enhancement, it would be nice to have a function Ensure-Module in order to manage properly PS Module.
I have done a small set of functions based on PackageManagement but it does not work properly for the Module installation as it does remove the old version.
##AH:UseTextMode ##AH:Description Définition d'un dépôt module PackageManagementSource<$Nom, $Ensure = present, $SourceLocation, $ProviderName = PowerShellGet, $InstallationPolicy = Untrusted> { Ensure-DscResource ( ConfigurationKey: Name, Name: PackageManagementSource, Module: PackageManagement, Properties: %(Name:$Nom,ProviderName:$ProviderName,SourceLocation:$SourceLocation,InstallationPolicy:$InstallationPolicy,Ensure:$Ensure) ) } ##AH:UseTextMode ##AH:Description Installation de modules PS à partir d'un dépôt module PackageManagement<$Module, $Version, $Source = internal-psm, $Ensure = Present> { log-information Module: $Module - $Version - $Ensure; Ensure-DscResource ( ConfigurationKey: Name, Name: PackageManagement, Module: PackageManagement, Properties: %(Name:$Module,RequiredVersion:$Version,Source:$Source,Ensure:$Ensure) ); }
note:
There are some prerequisites to have PackageManagement 1.4.7. -
Ensure-DSC and Module version
Hello
As PS Module version management is a mess, I am looking to call Ensure-DSC with a specific version of a module as it is possible with the Invoke-DscResource unsuccessfully.
Any exemple might helpfullThanks in advance
Best Regards
PhilippeC.
-
RE: Release Templates - Need help for dynamic list to get branch from Gitlab CE
Hi @rhessinger
I will be out of office for the next weeks.
I ll make the test when I come back
Best regards
PhilippeC. -
RE: Release Templates - Need help for dynamic list to get branch from Gitlab CE
Hi Rich
Using the extension Gitlab 1.7.6-RC2, it is working as expected if the Secure Resource is defined at the application level.Best Regards
Tested with Buildmaster 6.2.14
-
OTTER 2.22 - Variable inheritance between dependant roles
Hello
I meet some problem with variable inheritance between role. Is it a normal behavior ?
Test Case
- ROLE : FATHER / Create Variable : TEST = FATHER
Log-Debug ROLE FATHER - VALEUR = : $TEST
- ROLE : SON / Dependencies: FATHER / Orchestration:
Log-Debug ROLE SON - VALEUR = : $TEST
- Assign Role SON to a Server.
Force "Check configuration"
Results:
Configuration matches template. ROLE : FATHER - VALEUR = FATHER Could not resolve variable $TEST Collection run complete. Collection run failed.
While I expect :
ROLE : FATHER - VALEUR = FATHER ROLE : SON - VALEUR = FATHER
Best regards
PhilippeC.
-
RE: OTTER 2.2.22 - regression ? on Execute-PowerShell function
Thanks for the fast resolution
-
OTTER 2.2.22 - regression ? on Execute-PowerShell function
Hello
the following plan# General for server VM121007 { Execute-PowerShell >>"HELLO WORLD">> }
is not working on Otter 2.2.22 as expected while it was working fine on the previous version.
If I rollback to the previous version , it is working.
The error message is :
DEBUG: 2020-07-01 15:39:24Z - Job 1389 has no servers, server roles, or environments specified. DEBUG: 2020-07-01 15:39:24Z - Skipping collection run; execute only. INFO : 2020-07-01 15:39:24Z - Collection run succeeded. DEBUG: 2020-07-01 15:39:24Z - Beginning execution run... ERROR: 2020-07-01 15:39:24Z - Impossible de trouver le chemin d'accès à "C:\ProgramData\Otter\Executions\_E141722", car il n'existe pas. INFO : 2020-07-01 15:39:24Z - HELLO WORLD ERROR: 2020-07-01 15:39:24Z - Execution run failed. DEBUG: 2020-07-01 15:39:24Z - Cleaning up temporary files on Local Server...
This is a big regression for me
as many of my orchestration plans fail . Any answer would be helpful.
The extensions are all up to date
Best Regards
PhilippeC.
-
[OTTER] Bug when calling a module in a path from a raft
Hello
I just report a bug in Otter 2.2.21.
Test Case
Create a new Raft RaftTest (I am using a Git raft, but he pb must exist for any kind of raft)
Create a module- Name : ModuleTest
- Path : PathTest
module ModuleTest { Log-information Hello world }
Create a Plan : PlanTest
Edit the Plan in GUI Mode
Add the Module RaftTest::PathTest/ModuleTest (drag'n drop)
After you add it, you have an error message:Call template DSC::ModuleTest Template Error: template DSC::ModuleTest could not be found.
Switch to Text Mode
##AH:UseTextMode call RaftTest::ModuleTest();
whereas it shoud be
##AH:UseTextMode call RaftTest::PathTest/ModuleTest();
If you make the correction and stay in text mode, the plan is working fine.
If you go back to GUI mode you lose the correction and break the plan.Et voilà !
-
RE: Gitlab::Get-source is different between BM and Otter for credentials
Hi @rhessinger
I am an old sysadmin so I am really not fluent with .Net stuff and I don't have VS on my computer
but you give me a good starting point, I will make a try.Best Regards
PhilippeC. -
RE: Gitlab::Get-source is different between BM and Otter for credentials
Hello @atripp
I was still looking trying to share the same library in OTTER and Buildmaster despite the difference of the function Gitlab::source.
Is it possible that you create a built-in variable like$InedoProgram=<Otter | BuildMaster>
in some next release, so I could bypass the problem in my module like this.
If $InedoProgram = Otter { # OTTER { GitLab::Get-Source ( Credentials: gitlab-inedo, Group: ansible/playbooks, Project: $tolower($PLAYBOOK), DiskPath: $DOSSIER, Branch: master, KeepInternals: false, GitExePath: /usr/bin/git, CleanWorkspace: true ); } } else { # BUILDMASTER { GitLab::Get-Source global::GitLab ( Namespace: ansible/playbooks, Project: $tolower($PLAYBOOK), DiskPath: $DOSSIER, Branch: master, KeepInternals: false, GitExePath: /usr/bin/git, CleanWorkspace: false ); }
I did the trick with my own variable but it would be nice to have such variable.
" small steps for Inedo, giant leap for me"
Best Regards
PhilippeC. -
RE: Release Templates - Need help for dynamic list to get branch from Gitlab CE
Error querying list source: 404 Project Not Found
After I installed the pre release extension, I assigned the Resource - Gitlab resource
I used the project name from the resource which is defined at applicaiton level
And I have got the following message:
Error querying list source: 404 Project Not Found
Do I need to make some config on the gitlab side ?
-
RE: Release Templates - Need help for dynamic list to get branch from Gitlab CE
Gitlab Branches only 1 parameter ...
whereas GitHub Branches 2 ...
Bug ?
-
RE: Buildmaster CI Badge for pipeline step ?
In my opinion, using $ApplicationName is not possible, at least for Gitlab
Indeed from GitLab ref, we read :
The URL a badge points to, as well as the image URL, can contain placeholders which will be evaluated when displaying the badge. The following placeholders are available: * %{project_path}: Path of a project including the parent groups * %{project_id}: Database ID associated with a project * %{default_branch}: Default branch name configured for a project’s repository * %{commit_sha}: ID of the most recent commit to the default branch of a project’s repository
As %{project_path} is different from $ApplicationName if the project is defined in a group, the only link between the gitlab project and the builmaster application is the commit_sha var.
I think you just need to add stage as querystring and make the search for the result of the pipeline named stage for which exists an active build variable ($commitId in my example) with a value of commit_sha.
- and $commitId has to be unique over all BuidMaster.
Actually, it is not possible to get more variables (ideally %{project_path} at the GitLab::Get-source step.
The filter would be then better (Filter for project_path+ commitid + stage), but this is still a build variable and not an implicit variable like $ApplicationNameI don't know if there a better way because I have just started to use Gitlab.