2024. szeptember 4., szerda

Terraform, AzApi, Sql Managed Instance, DTC and it's consequences

Something from my daily work (It is possible, that I will more about it as I see daily issues).
I got an assignment to enhance out Azure SQL Managed Instances Terraform deployment module with DTC (Yes, it is a good question, why on earth this outdated technology is still needed).
For the DTC you will need two resources added to your managed instance. One is the DTC configuration, the other is the serverTrustGroup what determine which of your managed instances trust each other for the distributed transaction.
As I not even surprised, none of the above exists in the Terrafrom AzureRM provider, so you need to use AzAPI provider for it.
The DTC setting itself is a piece of cake - if you have experience using the AzAPI resources you can easily handle it.
The trustGroup is a different animal.
Here you can find the Microsoft documentation for it: https://learn.microsoft.com/en-us/azure/templates/microsoft.sql/2023-05-01-preview/locations/servertrustgroups?pivots=deployment-language-terraform
You just add the resource and done...


resource "azapi_resource" "symbolicname" {
type = "Microsoft.Sql/locations/serverTrustGroups@2023-05-01-preview"
name = "string"
parent_id = "string"
body = jsonencode({
properties = {
groupMembers = [
{
serverId = "string"
}
]
trustScopes = [
"string"
]
}
})
}



Not exactly. The name, groupMembers, trustScopes are explained in the documentation. The parent_id is not exactly. The documentation said:
"The ID of the resource that is the parent for this resource.
ID for resource of type: locations"
What this means to you?
Usually in the Azure "location" is used as the synonym of "region" - here: wrong
Even, if it would be the region, where should it be located in the management group/subscription/resource group hierarchy?
Anyway, as a normal Azure resource, it should be located in a resource group. Ok, add the resource group ID there. The Terraform give back this error:
"Error: `parent_id is invalid`: expect ID of `Microsoft.Sql/locations`"
What a hack is this Microsoft.Sql/locations ?
Looked through the internet. Yes it is part of the object hierarchy of the serverTrustGroups but, as resource it doesn't exists.
Ok. Deploy the Trust Group manually. Done it. On the portal you can't see the JSON of it.
Try other way.
Try to get it back via AZ CLI:


az sql stg list -g <resource group name> --instance-name <name>


The result:


[
{
"groupMembers": [
{
"serverId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<resource group name>/providers/Microsoft.Sql/managedInstances/sql-test-01"
},
{
"serverId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<resource group name>/providers/Microsoft.Sql/managedInstances/sql-test-02"
}
],
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<resource group name>/providers/Microsoft.Sql/locations/West Europe/serverTrustGroups/trust-group",
"name": "trust-group",
"resourceGroup": " <resource group name>",
"trustScopes": [
"GlobalTransactions",
"ServiceBroker"
],
"type": "Microsoft.Sql/locations/serverTrustGroups"
}
]


Now, can you see?
After this, our code will look like something this:


resource "azapi_resource" "trust-group" {
  type = "Microsoft.Sql/locations/serverTrustGroups@2023-05-01-preview"
  name = var.trust_group_name
  parent_id = "${var.resource_group_id}/providers/Microsoft.Sql/locations/${var.region}"
  body = jsonencode({
    properties = {
    groupMembers = [for ServerID in var.groupMembers : { "serverId" = ServerID }]
    trustScopes = var.trustScopes
    }
  })
}



And I try not to judge the quality of the Microsoft documentation ...

2024. augusztus 31., szombat

Reorganizing lab 2.

After having hard time to remove the rust and the graphite covering from the iron parts during the week, Today finally I was able to put back the rust. 🤣

 
Just joking. I found redish brown base coating. 😉
I'm planing the black cover paint for tomorrow.


2024. augusztus 28., szerda

Reorganizing the lab 1.

Most of this years spare time activities went with other tings than electronics, 3D printing and my lab itself.
The result is an extreme chaos down here. A few weeks ago I decided to start to work on this.
The first was to dig out myself from the things around here. The second I decided to build the shelves on the top of my desks to generate some free spaces.
Bought everything needed. Wood panels, table legs (this will support the shelves), some iron profiles to reinforce the front of the shelves as I'm not willing to put support on the center front. Also want to reinforce the table legs as those has extreme wobbling.
The work begun. Cleaned two of my four desks.
The iron profiles are cut and drilled.


Next is sanding, painting those.

2024. július 2., kedd

My new toys

I started, to reorganize my worshop. In the way I gave some present to myself for my birthday. 😁
Siglent function generator - will replace my older Hantek
Siglent 12 bit resolution oscilloscope
Rigol function generator power amplifier
The shiny new Bus Pirate 5.

2024. január 9., kedd

I'm back - Thingiverse



A few month ago I stopped to work on my hobby projects. I had many other things in my mind, changed my life a bit, restarted my photography hobby and so on.

In December I started to think about to continue my things, first in 3D printing, but not too much happened (I'll write about it later).

A few years ago when I involved myself in the 3D printing also registered an account on Thingiverse.

I published there a few things: https://www.thingiverse.com/suf/designs

After a while (not really remember exactly when) Thingiverse accused me with a copyright fraud and disabled my account. To understand, all of the designs I published designed by myself and not connected to any copyright protected thing, so I still don't understand why.

I took several attempts to recover my account - unsuccessfully, then I gave up.

Yesterday I got two notifications that somebody commented one of my designs and remixed it. It was interesting as I didn't se such in the last years.

Just tired to login. And miraculously it let me in.

I don't know what happened but I'm happy on it anyways. I just guess it has some connection with the recent events described here: https://3dprintingcenter.net/ultimaker-announces-a-major-update-to-the-thingiverse-platform/

Anyways, I'm happy with it. I feel that an indication to come back in many ways.

2023. szeptember 16., szombat

Building my rack(s)

In my previous lab, I had a small (27U) rolling rack at the side of my desk. When it finally got its shape, I started to move to my new lab. The equipment removed the rack disassembled.




I was a bit depressed on this as I had the feeling I'll never be able to put this together once again.
As I was reading things on the Facebook, I seen a guy trying to sell a whole bunch of outdated Cisco networking equipment. Nobody was interested, there came ugly comments on it, to throw the whole thing to the trash.
I seen a potential on something. Those Cisco units were installed into rack. So I wrote to him, if the rack containing the switches are on sale.
So I've two Rittal 42U height 600x800 racks for $100 each. I had some cleaning, metal work and paint repair with it (full repaint wasn't required, it has almost no rust just some dirt). One set of the vertical rails are not compatible, one rail mount was missing. Also I wanted open frame rack, so removed all of the doors, side panels, back panels.
Also I wanted to be able to move it on some rollers, but not every direction, just strictly need to pull out from the wall to be able to access the back. So I made legs with bearings as rollers.
In the last week finally put back most of the equipment to it (some not fit, it will be go into the other rack when I'll able to find time to rebuild the back vertical rails.


One of my problems with the rack, how to access the equipment connectors on the back, from the front of the rack. I wanted something modular to be able to put various type of connectors to it.
Built a 1,5U unit onto the top of the previous rack from aluminum extrusion a 3D print. It failed. Wasn't precise enough, won't fit things I wanted to put in.
I was thinking about some Panduit modular patch panels, but never bought it. So just left it.
I put this thing to a side for years.
When I started to build my new rack a few month ago, I just seen something interesting on the net. Asked the owner, what he was using. It turned out, It is a Middle Atlantic Products UCP series modular kit: https://www.legrandav.com/products/accessories/connector_panels/ucp_hinged_frame_kit/ucp-sf
It has two issues for me: It is not on sale in Europe, it uses imperial screws what isn't easy to source here.
I designed and built a 3D printed 3U height modular front panel. It can accommodate 16 modules. It is great, I put it into the rack already, with the breakouts of the four channel HP 6627A power supply.


This could be the final solution, but...
...when it was already built just realized, there exists something called Eurorack Modular Synths. It perfectly match with my ideas. I bought two set of rails.


The 19" rack mount was not included, but by surprise, the original endpieces are already 3D printed


The plan is to design a new endpiece with rack ears.
In the first rack, I'll keep my original design, but in the further rack or racks I'll switch to EuroRack.
In the last few years I was mainly working with Kubernetes. For this I previously built a K3S cluster from 5 Pine A64 SBCs. It broke down (dead SD cards), but I intend to rebuild it.
I thought, it would be a great idea to put these units into the modular front panel. Designed a holder for it.



Didn't print it when the design was ready as my printer had issues, later I didn't find time for it.

To be honest, I done not too much in my electronics project during the summer. The PCBWay asked, if I have problems - absolutely not - and suggested why I don't try out their 3D printing and CNC machining capability.

I was thinking this is a perfect opportunity for this. Made a quotation to this in PETG and some small part in resin. I can tell you, I was shocked. Mainly in the resin prices.
If the things I'm trying to print with a resin printer coming on these prices, absolutely nothing justify keeping my resin printer in the future.
Now the quotation is on. I'll write about the experience and my further way in 3D printing when the printed parts arrive into my hands for inspection.

2023. szeptember 5., kedd

Fluke 787 "Repair"

Big thank you for DuraLeak.

"i purchased this at an estate sale.  i don't know if it works or how to turn it on.  but as it is right now i have pushed every button and nothing comes on the screen.  so because of that i am selling it for parts or repair."


Perfectly working Fluke 787 Processmeter for $143 delivered to Hungary


I need some future tests, but looks ok, for the first sight.