2021-01-10
Azure Classic Select-AzureSubscription Error
Select-AzureSubscription : The subscription id doesn't exist.
Select-AzureSubscription : The subscription name doesn't exist.
Select-AzureSubscription : Parameter set cannot be resolved using the specified named parameters.
Add-AzureAccount : No subscriptions are associated with the logged in account in Azure Service Management (RDFE). This means that the logged in user is not an administrator or co-administrator for any account
Add-AzureAccount : AADSTS50074: Strong Authentication is required.
I had the following problems with Setting the default subscription because of two reasons. For this you need to have set co-administrator rights
Solution: Add classic administrator role inside AAD for user you are using to log in. Azure Portal > subscriptions > subscription - Access control (IAM) > Classic administrators > Add > Add co-administrator and try again!
Non responding Azure VM
I opened the M$ support case because it was another occasion of the same behavior and I wanted to know the answer. We went through a classic scenario: Restart, deallocation, and redeploy via the portal. The extra task was the restart VM's from the serial console but the serial console did not come up even after a reboot.
Failed to mount /var/lib/docker. See 'systemctl status var-lib-docker.mount' for details. Dependency failed for Local File Systems.
Solution: add to mount point /etc/fstab an item -nofail. Save and exit. Detach drive and do OS swap for the machine. The reboot should be OK and the machine should be online.
- Take the snapshot of OS disk - a full snapshot
- In disks – Created new disk using source path as a snapshot.
- Verify the size of the disk and the type of disk used and used the same size and type to create a new disk.
- Attach the disk to an existing Redhat VM, swap the disk, and mount it.
2021-01-01
Doporučená instalace softwaru a používání služeb
Počítačové:
- doporučuji Avast Antivir
- Dropbox uložiště o 500 MB větší (nová registrace)
- OneDrive uložiště o 500 MB větší (nová registrace)
- Sleva na Wedos - internetový web hosting
- Amazon AWS a 20$ kredit na služby
- Humble Bundle - sleva na měsíc při založení nového účtu
- Duolingo bonus - týden premiového účtu zdarma
Fintech
- obchod s kryptoměnami a platební karty Crypto kód b2hc79vw9z
- cashback Tipli.cz
- Investice na Bondster.com (1% bonus kód 1000011096)
- Revolut, karta s lepšími kurzy než banka
Služby:
- CarSharing Panek: AGPPFE6T je PANkod k zadání při registraci
- Rekola.cz - poukaz na slevu 10% => ek795dnv
- HoppyGo carsharing, sleva 500 Kč na služby s kódem RC2e9a31
- Nová "úžasná" měna InitiativeQ!
- Booking.com - slevový kupón na -10% z ubytování, lepší než nic...
- Cestovní a další pojíštění? (pojištění majetku s kupónem M15KHFVTKY)
- Chcete začít nabízet ubytování na Booking.com?
- 4 EURa na parkování přes EasyPark.net přes tento link! Další slevový kupón je N9102TS na 5 €, který se pak zadá v aplikaci. Celkem tedy 9 € na parkování zdarma.
2020-08-30
Microsoft kontakty v Android telefonu
V telefonu s operačním systémem Android není nutné používat synchronizaci s účtem Google (i když ten je nezbytné mít také pro správné fungování aktualizací). Nicméně pro uchování kontaktů či položek kalendář je možné použít například služby Microsoft přes některý z jeho účtů (školní, pracovní) a zejména osobní účet.
Když provedete nastavení intuitivně přes Nastavení => Účty => Přidat účet => Exchange narazíte na hlášku "Pokud chtete použít tento účet vraťte se na přechozí stránku a zvolte 'Outlook, Hotmail a Live', která tam ovšem není.
Takže jak na to? Podobně Nastavení => Účty => Přidat účet => Exchange, kde dole je tlačítko ručně. Zde je nastavení adresy serveru, kam uvedete eas.outlook.com a po kliknutí na další se účet přidá.
V aplikaci kontakty, pak přes nastavení zvolte a) zobrazení kontaktů ze správného seznamu b) ukládání nových kontaktů do tohoto účtu. U kalendáře mi to fungovalo správně samo.
2020-04-29
az cli replace VMSS NSG
If you don't like the existing network security group object linked with your virtual machine scale set, you can change it by using set command replacing value there with new id. There is no separate az vmss update command for it.
used variables:
- $subscriptionId
- $resourceGroup
- $vmssName
- $nsgNameNew
- az vmss update --name $vmssName -g $resourceGroup --set virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].networkSecurityGroup.id=/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.Network/networkSecurityGroups/$nsgNameNew
- az vmss update-instances --instance-ids '*' --name $vmssName --resource-group $resourceGroup --output none --no-wait
I hope it helped.
2019-11-11
Jednoduchý proxy server s IPTABLES
Použil se na to virtuální stroj s Ubuntu a minimální velikostí. Jako proxy sloužil nástroj iptables, ale dalo by to udělat i s nginx proxy nebo apache2 proxy.
Prvnotní kontrolu prázdných iptables lze provést příkazem
iptables-save
kde by nemělo být žádné pravidlo
Nejjednodušší je vytvoření skriptu s pravidlem transparentní proxy příkazem
nano natscript.sh
kam přijde text
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.10.10.10:8080
iptables -t nat -A POSTROUTING -p tcp -d 10.10.10.10 --dport 8080 -j SNAT --to-source 11.11.11.11
přičemž 10.10.10.10 je cílová adresa, kam se vlastně chceme připojit a 11.11.11.11 je adresa hostitelského serveru, aby se provoz dostal zpátky k odesilateli požadavku. Překlad portu neprobíhá a zůstává na 8080.
Pojďme na to a spustit skript, který založí vytvořená pravidla
sudo chmod +x natscript.sh
sudo ./natscript.sh
Po vykonání tohoto příkazu už bude vidět pravidlo v kontrolním logu s příkazem iptables-save
# Generated by iptables-save v1.6.1
*nat
:PREROUTING ACCEPT
:INPUT ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT
-A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.10.10.10:8080
-A POSTROUTING -d 10.10.10.10/32 -p tcp -m tcp --dport 8080 -j SNAT --to-source 11.11.11.11
COMMIT
# Generated by iptables-save v1.6.1
Nyní je potřeba uložit tuto konfiguraci permanentně
sudo su root
sudo apt-get install iptables-persistent
případně při změně
recall dpkg-reconfigure iptables-persistent
Nicméně tato konfigurace stále nezůstane zachována při restartu serveru, je potřeba v souboru
sudo nano /etc/sysctl.conf
odkomentovat řádek
net.ipv4.ip_forward=1
a uložit
Namísto směřování požadavků na adresu 10.10.10.10:8080/path/file provádíte nyní dotazování adresy 11.11.11.11:8080/path/file se stejným výsledkem.
Pokud si přejete debugovat pravidla při překladu, doporučuji příkaz tcpdump
sudo tcpdump dst port 8080 or src port 8080
To by bylo vytvoření jednoduchého proxy serveru obcházející chybějící ACL pravidlo na firewallu.
2019-08-19
Klonování Resource Group v Azure
Pozor, po dokončení činnosti skriptu je potřeba zkontrolovat, zda-li se zkopírovalo všechno. Application gateway nebo SQL server se mi při použití skriptu nenaklonovaly. Taktéž chyběl diagnostický storage account, ale to zjevně nevadí.
2019-06-12
Zabbix agent installation
sudo apt-get install zabbix-agent
zabbix-agent : Depends: libcurl4 (>= 7.16.2) but it is not installable
sudo nano /etc/apt/sources.list
###### Ubuntu Main Repos
deb http://us.archive.ubuntu.com/ubuntu/ bionic main universe
deb-src http://us.archive.ubuntu.com/ubuntu/ bionic main universe
###### Ubuntu Update Repos
deb http://us.archive.ubuntu.com/ubuntu/ bionic-security main universe
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main universe
deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-security main universe
deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates main universe
sudo apt-get update
sudo apt-get install zabbix-agent
sudo nano /etc/zabbix/zabbix_agentd.conf
sudo systemctl restart zabbix-agent
cat /var/log/zabbix-agent/zabbix_agentd.log
Job for zabbix-agent.service failed because the control process exited with error code. See "systemctl status zabbix-agent.service" and "journalctl -xe" for details.
invoke-rc.d: initscript zabbix-agent, action "start" failed.
If it doesn't help, just install older version
sudo apt-get install zabbix-agent=1:3.0.12+dfsg-1
2019-03-08
Používání SonarQube pro DevOps
wrapper.java.command=C:\Program Files\Java\jre1.8.0_202\bin\java
wrapper | Waiting to start...
wrapper | The SonarQube service was launched, but failed to start.
INFO: EXECUTION FAILURE
INFO: Final Memory: 15M/247M
ERROR: Error during SonarQube Scanner execution
ERROR: Java heap space
ERROR: The SonarQube Scanner did not complete successfully. Post-processing failed. Exit code: 1
wrapper.java.additional.1=-Xms2048m
wrapper.java.additional.1=-Xmx%WRAPPER_SYSMEM_80.0%
sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.ce.javaOpts=-Xmx8192m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError
sonar.jdbc.username=sonarqube
sonar.jdbc.password=password
sonar.jdbc.url=jdbc:sqlserver://<IPorDNS>:1433;databaseName=sonarqube
sonar.security.realm=LDAP
sonar.security.savePassword=true
#sonar.security.localUsers=admin
ldap.url=ldap://DOMAIN.local:389
ldap.bindDn=sonarqube@DOMAIN.local
ldap.bindPassword=PASSinPLAINTEXT
#ldap.bindPassword={aes}passhashed
ldap.user.baseDn=cn=users,dc=DOMAIN,dc=local
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
ldap.group.baseDn=DC=inpulsetest,DC=local
ldap.group.request=(&(objectClass=group)(memberUid={uid}))
2018-11-23
Nastavení spouštění Jenkins úlohy na webhook z Gitu
Manage webhooks zůstane nezaškrtnuto (sekce A.3) pro manuální instalaci webhooku na GitHubu.
Poté je výhodné udělat testovací ping a počkat na zelenou fajku, nicméně vlastní run jobu začně až po prvním commitu. Zejména na začátku nespěchtejte, občas to chce čas na reakci.
2018-11-19
Namespace Microsoft.SqlServer (are you missing an assembly reference?)
error CS0234: The type or namespace name 'Management' does not exist in the
namespace 'Microsoft.SqlServer' (are you missing an assembly reference?)
[...Installer.csproj]
2018-10-24
Jenkins stops pipeline from Powershell
scriptWhat is happening inside powershell script? There is needed to generate authorized POST call to Jenkins server, luckily is process few lines of code. Part of code is missing definition of parameters in Powershell.
{
if(env.GIT_PREVIOUS_SUCCESSFUL_COMMIT != null)
{
withCredentials([string(credentialsId: 'JenkinsAPIcredentials', variable: 'apistring')])
{
echo 'checking number of changes and stopping job if nothing new happened'
powershell 'powershell -File $env:WORKSPACE\\stop-script.ps1 -phrase "stop-job" -buildNumber $env:BUILD_NUMBER -gitprevious $env:GIT_PREVIOUS_SUCCESSFUL_COMMIT -gitcurrent $env:GIT_COMMIT -jenkinsUrl $env:JENKINS_URL -buildIDurl $env:BUILD_URL -apistring $env:apistring'
}
}
}
if($phrase -eq "stop-job")I hope this few lines of code can make your day easier.
{
$commitsnumprevious = (git rev-list --count $gitprevious)
$commitsnumactual = (git rev-list --count $gitcurrent)
$difference = $commitsnumactual-$commitsnumprevious
if($difference -le 0)
{
$url = $buildIDurl+'stop'
$Bytes = [System.Text.Encoding]::UTF8.GetBytes($apistring)
$Base64bytes = [System.Convert]::ToBase64String($Bytes)
$Headers = @{ "Authorization" = "Basic $Base64bytes"}
$CrumbIssuer = "$jenkinsUrl/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,`":`",//crumb)"
$Crumb = Invoke-WebRequest -UseBasicParsing $CrumbIssuer -Headers $Headers
$Regex = '^Jenkins-Crumb:([A-Z0-9]*)'
$Matches = @([regex]::matches($Crumb, $Regex, 'IgnoreCase'))
$RegCrumb = $Matches.Groups[1].Value
$Headers.Add("Jenkins-Crumb", "$RegCrumb")
try
{
$response = Invoke-WebRequest -Uri $url -Headers $Headers -Method POST
}
catch
{
Write-Error "Stopping of job failed! " $_.Exception.Response.StatusCode.Value__
}
}
}