Microsoft Intune

Microsoft Intune is a cloud-based service that focuses on mobile device management (MDM) and mobile application management (MAM). You control how your organization’s devices are used, including mobile phones, tablets, and laptops. You can also configure specific policies to control applications. For example, you can prevent emails from being sent to people outside your organization. Intune also allows people in your organization to use their personal devices for school or work. On personal devices, Intune helps make sure your organization data stays protected, and can isolate organization data from personal data.

Automasi Windows 10 upgrade-inplace dengan Command-line

Beberapa waktu lalu saya di hadapkan pertanyaan dari teman, bagaimana strategi upgrade windows 10 dengan jumlah ratusan desktop / laptop tanpa tool seperti Configuration Manager karena clientnya tidak punya license. Saya mencoba Microsoft Deployment Tool (MDT), akan tetapi masih terdapat issue untuk support windows 10 (MDT issue with windows 10). Bagaimana strateginya dan ingin prosesnya di automasi.

Karena inplace-upgrade windows 10 preserve all files, settings dan drivers, lebih mudah untuk di buatkan script dengan cmd line yang tersedia (Windows Setup Command-line Option).

Berikut langkah-langkahnya

  1. Copy semua files dari dvd atau iso windows 10 ke local drive atau network share.

    Automasi Windows 10 upgrade-inplace dengan Command-line 1

  2. Create bat file atau cmd file di satu folder dengan installasi file.

    Automasi Windows 10 upgrade-inplace dengan Command-line 2

  3. Edit file dengan notepad atau editor lainnya, tambahkan code untuk custom windows 10 upgrade-inplace. Berikut contohnya

    Start /wait /realtime c:\Source_Windows10\setup.exe /auto Upgrade /Migratedrivers all /Dynamicupdate Disable /Showoobe none /Pkey xxxxx-xxxxx-xxxxx-xxxxx-xxxxx /Compat IgnoreWarning /Telemetry disable /copylogs C:\logupgrade\%computername%

  4. Jika user pc di perbolehkan untuk upgrade, file tersebut bisa di taruh di network share dengan sedikit perubahan pada script , sehingga tidak perlu copy instalasi file windows 10 ke local hard drive. Jika di run dari network share/drive instalasi file windows 10 akan di copy ke stagging location secara automatis. Bisa juga menggunakan gpo untuk menaruh file install.cmd di desktop user sehingga bisa di run sendiri oleh user.

    Berikut contoh install.cmd jika file instalasi windows di taruh di network share / drive.

    Start /wait /realtime \\<Network-Drive>\setup.exe /auto Upgrade /Migratedrivers all /Dynamicupdate Disable /Showoobe none /Pkey xxxxx-xxxxx-xxxxx-xxxxx-xxxxx /Compat IgnoreWarning /Telemetry disable /copylogs \\<Network-Drive>\logupgrade\%computername%

     

  5. Jangan lupa untuk membuat folder logupgrade untuk parameter “C:\logupgrade\%computername%” atau di sesuaikan dengan kebutuhan. Parameter tersebut digunakan untuk analisa jika terjadi error selama proses upgrade terjadi.

Menurut saya ini metode cheap, quick & less infrastructure, bila customer tidak punya management tools dan tidak banyak waktu untuk install dan test deploy dengan MDT.

Happy Upgrade

vCloud-mridwanjid

Ovftool : Upload OVA to vCloud Director

Open Virtualization Format (OVF) is an industry standard to describe metadata about virtual machine
images in XML format. VMware OVF Tool is a command-line utility that helps users import and export
OVF packages to and from a wide variety of VMware products.

Deploying an OVF Package into vCloud Director.

You can deploy an OVF/OVA package from OVF Tool into vCloud Director. The following example connects to vCloud Director and deploys the OVA/OVF package LAMP.ova.

ovftool "c:\LAMP.ova" "vcloud://myuser:PASSWORD@example.com:443/?org=myOrg&vapp=test1&vdc=orgVdc&catalog=catalog"

Default Location for ovftool installation :

C:\Program Files\VMware\VMware OVF Tool>

where :

"myuser" should be local admin of Organization.

Using the Log Settings.

Use the OVF Tool’s log options if you are not seeing the results you expect. The log options allow you to
see the operations of the OVF Tool, and send the results to the console or to a file.
Two of the most commonly used options are: --X:logFile and --X:logLevel.

  • Use the --X:logFile= option to log the complete ovftool session to a file.
  • Use the --X:logLevel= option to control the verbosity of the logs.

For example, you can use a command similar to this to write the log in a file called ovftool-log.txt:

>ovftool --X:logFile=c:\ovftool-log.txt --X:logLevel=verbose "C:\LAMP.ova" "vcloud://myuser:PASSWORD@example.com:443/?org=myOrg&vapp=test1&vdc=orgVdc&catalog=catalog"
Memindahkan Firewall rules antar NSX Edge 3

Memindahkan Firewall rules antar NSX Edge

Find NSX Edge ID :

  • Login ke vCenter.
  • Network and Security.
  • NSX Edges.
  • Cari NSX Edge Dengan fitur Search.
  • Catat NSX Edge id.

 

Query Get Edge Firewall Configuration :

  • Open Postman.
  • Authorization, pada Drop down menu pilih Basic Auth, isi username dan password untuk NSX Manager.
  • Header, Get Url https://<nsx-manager>/api/4.0/edges/<edge-id>/firewall/config.
  • Send.
  • Jika valid, request atau query statusnya 200 OK.

 

Edit respond file :

  • Save Respond as file.
  • Open file xml yang telah di save sebelumnya editor.
  • Copy Section firewall rules <firewallRule></firewallRule> yg akan dicopy / add ke edge lainnya.
  • Kecuali rule dengan tag <ruleType>internal_high</ruleType>, karena predefine firewall rules.
  • Remove selain section <firewallRules></firewallRules>.
  • Remove <firewallRule> yang di dalamnya terdapat tag <ruleType>internal_high</ruleType>
  • Remove tag <id></id> dan <ruleTag></ruleTag> dalam semua <firewallRule>.

 

Query Post ke NSX Edge Destination :

  • Open Postman.
  • Tentukan NSX Edge ID yang akan di tambahkan firewall rule baru.
  • Autorization, isi username dan password untuk NSX Manager.
  • Query Post url : https://<nsx-manager>/api/4.0/edges/<edge-id>/firewall/config/rules.
  • Body, pilih raw option, typenya XML.
  • Jika success, status codenya 201 Created.
  • cek firewall rules di edge destination.

Happy Query.

Menambahkan Edge Firewall Rules melalui vCloud API 4

Menambahkan Edge Firewall Rules melalui vCloud API

Edge Firewall Rule :

User dapat menambahkan firewall rule pada firewall tab di NSX edge gateway. Beberapa firewall rules sudah masuk pre-build sebagai bagian dari preconfigure services, yang sebaiknya tidak di rubah.

Problem :

  • User ingin menambahkan Firewall rules dari GUI dan hanya bisa menambahkan satu firewall rules pada satu waktu.
  • User ingin automasi pembuatan firewall rules terutama firewall rule yang di dalamnya multiple ports untuk mengurangi manual efforts.

Solusi :

Untuk menangani masalah ini, vCloud Director menawarkan NSX Proxy API, yang dapat membantu User untuk automasi rules rules firewall. Berikut proses menambahkan firewall rules menggunakan API :

  • Query Get NSX Edge ID melalui API.
  • Query Get config Edge Firewall.
  • Add (Post) Firewall rules.

Query Get NSX Edge ID :

Untuk menentukan NSX Edge ID, perlu query 'Get' melalui API.

https://<vCloud url>/network/edges

Berikut Header Information untuk query 'Get' melalui API .

Content API :

Query API tadi akan memberi informasi tentang Edge, catat edge objectid dan id dari Edge.

Note : Informasi yang di dapat pada Body Header tergantung dari Privilege user.

Query Get Edge Firewall Rules configuration :

Langkah ini sebenarnya tidak dibutuhkan, tetapi jika ingin melihat existing configuration dari firewall rules atau ingin backup firewall rules, langkah ini dapat dilakukan.

Lakukan Query 'Get' dengan edgeid yang telah kita dapatkan sebelumnya.

https://<vCloud>/network/edges/c7801911-ca4d-419d-9f91-a3b7ec7d86fd/firewall/config/

 

Save as respond file dari configuration firewall untuk di jadikan backup.

config firewall

Query Post (Add) Firewall Rule:

Untuk menambahkan firewall rule, perlu melakukan Query 'Post' di url :

https://<vcloud>/network/edges/c7801911-ca4d-419d-9f91-a3b7ec7d86fd/firewall/config/rules/
  • c7801911-ca4d-419d-9f91-a3b7ec7d86fd = edgeid
  • Content-type - Application/xml
  • Authorization - Bearer Token, untuk mendapatkan Bearer Token dapat mengikuti Post Berikut.

Body Content :

Untuk Query 'Post', pada bagian body di isi firewall rule yang akan di tambahkan, berikut contoh menambahkan rule dengan nama dns2 dengan allow port 53 dengan format xml. Dari tagnya cukup jelas, beberapa item yang penting untuk di ingat :

  • Body harus di mulai <firewallRules> dan di akhiri </firewallRules> section.
  • Menambahkan rules harus di dalam section <firewallRule></firewallRule>
  • Di dalam section <service></service> kita bisa mendefine protocol dan port
<firewallRules>
<firewallRule>
<name>dns2</name>
<ruleType>user</ruleType>
<enabled>true</enabled>
<loggingEnabled>false</loggingEnabled>
<description>dns</description>
<matchTranslated>false</matchTranslated>
<action>accept</action>
<source>
<exclude>false</exclude>
<ipAddress>any</ipAddress>
</source>
<destination>
<exclude>false</exclude>
<ipAddress>any</ipAddress>
</destination>
<application>
<service>
<protocol>tcp</protocol>
<port>53</port>
<sourcePort>any</sourcePort>
</service>
</application>
</firewallRule>
<firewallRules>

Berikut contoh API call nya, dan body nya harus berformat XML.

 

Jika ingin menambahkan firewall rule lainnya, tambahkan <firewallRule></firewallRule> section baru didalam single <firewallRules></firewallRules> section.

Result :

Jika Query 'Post' nya valid akan mendapat response "201 Create".

Happy Query

vCloud-mridwanjid

E1000 or VMXNET3?

Perlukah mengganti virtual adapter E1000 dengan Vmxnet?

E1000, VMXNET - what, why, which?

E1000, VMXNET2, VMXNET3 dan ... adalah virtual nic yang tersedia di VMware environtment. VMware merekomendasikan VMXNET3 sebagai vNIC kecuali terdapat issue di driver atau compatibility. Akan tetapi E1000 adalah default vNIC untuk pembuatan vm baru karena tidak perlu VMware Tool untuk OS mengenalinya.

berbicara mengenai E1000, adalah software yang meng-emulate / menirukan 1GB network card. itulah alasan kenapa E1000 tidak perlu driver untuk berjalan di virtual environtment. Masalahnya, E1000 adalah software yang bertingkah layaknya hardware. terdapat Performance Issue karena berjalan di ASIC (Application-Specific Integrated Circuit) yang berbeda maka membutuhkan alokasi process di cpu hostnya untuk berjalan normal, hal tersebut menyebabkan performance issue karena bergantung terhadap performance CPU host. performance di single cpu akan berbeda dengan performance di multicpu hostnya (server, applicance,..).

====

Best Practice dari VMware adalah Menggunakan vmxnet3 sebagai virtual nic, kecuali butuh spesific driver atau compatibility issue. Default virtual nic ketika pembuatan virtual machine adalah E1000, karena tidak membutuhkan VMware tools terinstall.

E1000 virtual nic adalah software emulate/copy/mimic dari 1GB network card.

E1000 adalah yang paling umum di gunakan di perangkat intel base dan kebanyakan Operating system sudah buildin support. Karena tidak memerlukan driver khusus atau extra efford ( install driver/package dll) untuk sebuah operating system berjalan di virtual environtment. Masalahnya adalah E1000 hanya sebuah software yang acting seperti hardware. hal tersebut dapat menyebabkan performance issue karena membutuhkan CPU dari 'host'  untuk berjalan normal di ASIC yang berbeda. perlu resource lebih dari hypervisor untuk emulate E1000 dibanding VMXNET untuk setiap VM.

versi emulasi dari Intel 82545EM Gigabit Ethernet NIC. Tidak semua operating system mempunyai driver tersebut. Biasanya mulai dari Linux versi 2.4.19, Windows XP Professional x64dan Windows Server 2003 (32-bit) dan generasi selanjutnya, telah mendukung driver E1000.

VMXNET3 adalah virtual nic yang telah ter-virtualisasi secara utuh.

dengan VMXNET3, driver dan network processing telah terintegrasi dengan ESXI hypervisor. Artinya tidak perlu proses tambahan yaitu untuk meng-emulasi hardware device dan performance networkya lebih baik dari E1000. tidak ada build-in driver untuk vmxnet3 di beberapa operating system seperti Windows 2008 R2 dan RedHat / CentOS, maka perlu VMware Tools untuk menginstall driver tersebut.

VMXNET virtual nic tidak bergantung pada physical card. VMXNET digunakan untuk mengoptimalkan performance di virtual machine. Karena vendor OS umumnya tidak menyediakan build-in driver untuk vnic tersebut, maka perlu meng-install VMware Tools.

Rekomendasi ? kita sudah sering melihat bahwa dengan mengganti type vnic dari E1000 menjadi VMXNET3 terjadi peningkatan performance network. berikut adalah guide komparasi antar virtual nic dari VMware.

Untuk komparasi lebih lanjut bisa dilihat di blog Rickard Nobel.

Postgresql

Configure Postgres Remote Connection

Pada umumnya ketika selesai install Postgres default konfigurasinya bound ke “localhost”, contohnya :

$ netstat -nlt
Proto Recv-Q Send-Q Local Address     Foreign Address	State
tcp        0      0 0.0.0.0:443       0.0.0.0:*        	LISTEN
tcp        0      0 127.0.0.1:11211   0.0.0.0:*        	LISTEN
tcp        0      0 0.0.0.0:80        0.0.0.0:*        	LISTEN
tcp        0      0 0.0.0.0:22        0.0.0.0:*        	LISTEN
tcp        0      0 127.0.0.1:5432    0.0.0.0:*        	LISTEN
tcp        0      0 127.0.0.1:3737    0.0.0.0:*        	LISTEN
tcp6       0      0 :::22             :::*             	LISTEN

Dari hasil netstat di atas, kita ketahui port 5432 bounding ke 127.0.0.1 yang artinya koneksi hanya dapat di terima dari dalam OS/Mesin. Setiap connection request dari luar OS/Mesin akan di reject. Bisa dibuktikan menggunakan telnet dari luar OS/Mesin di port 5432.

$ telnet 107.170.11.79 5432
Trying 107.170.11.79...
telnet: connect to address 107.170.11.79: Connection refused
telnet: Unable to connect to remote host

Configuring postgresql.conf

Agar bisa di manage dari luar mesin, kita perlu menambahkan config di file postgresql.conf. Lokasi file postgresql.conf nya di setiap system akan berbeda-beda tetapi kita bisa cari menggunakan find.

$ find / -name "postgresql.conf"
/var/lib/pgsql/9.4/data/postgresql.conf

Open file posgresql.conf dan repolace baris di bawah ini.

listen_addresses = 'localhost'

Dengan :

listen_addresses = '*'

Sekarang restart postgres service.

/etc/rc.d/init.d/postgresql restart 

Jalan kembali netstat untuk melihat listen port.

$ netstat -nlt
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:2812          0.0.0.0:*               LISTEN
tcp6       0      0 ::1:11211               :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 :::5432                 :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN

disini kita bisa lihat “Local Address” untuk port 5432 telah berubah menjadi 0.0.0.0

Configure pg_hba.conf

Sekarang kita coba kembali remote postgresql server menggunakan cmd “psql”.

$ psql -h 107.170.158.89 -U postgres
psql: could not connect to server: Connection refused
	Is the server running on host "107.170.158.89" and accepting
	TCP/IP connections on port 5432?

Ternyata “Refused”, agar postgresql menerima remote cmd kita perlu menambahkan configuration di file pg_hba.conf.

Tambahkan configuration di bawah ini pada akhir baris pg_hba.conf.

host    all             all              0.0.0.0/0	md5
host    all             all              ::/0           md5

md5 pada configuration di atas berarti password perlu di provided. Jika di clinet tidak mau menggunakan password bisa di rubah “md5” menjadi “trust”.

Restart kembali postgresql service, dan coba kembali connect.

$ psql -h 107.170.158.89 -U postgres
Password for user postgres:
psql (9.4.1, server 9.4.5)
Type "help" for help.

postgres=# \l

Sekarang postgresql bisa connect secara remote.

Perhatian, untuk server production harus di lengkapi extra layer security seperti di atas.

Troubleshoot Virtual Machine with Strange VMDK 5

Troubleshoot Virtual Machine with Strange VMDK

This article provide solution how to troubleshoot virtual machine that had issue with it's vmdk extension.
In the past, we had problem with our's customer Virtual Machine (VM). This VM does not have correct file type / Extenstion like normal VM had. VM had GUID file type ( my opinion ) rather than VMDK or FLAT-VMDK. This article provide how to troubleshoot virtual machine that same issue with me.

This Example VM that had strange file Extension.

3 files should have ending " .vmdk " extension, changed like GUID.

The good is Backup Service like Veeam still running on this VM, but it not with replication. We dont know what would be happen if VM shutdown or restart, would VM recognize its disk or not, we havent tried yet.

Our customer had backup and replication services on these VMs, So we need to fix these issue.

Here is our plan to fix :

  1. Shutdown VM.
  2. Change file extension.
  3. Repointing VMDK to flat file.
  4. Make a Coffe.
  5. Repointing VMDK and Flat-VMDK in VMX file.
  6. Reload VM.
  7. Finish.

And here is steps :

1. Shutdown VM.

2. Rename Strange File Extension.

We had 3 files that had incorrect extension. In my situation these files should be change to vmdk, ctk.vmdk and flat.vmdk.

  • File with extension .5 (eb2fe...) change to .vmdk.
  • File with extension -ctk. 5(eb2fe..) change to -ctk.vmdk.
  • File with extension -flat. 5(eb2fe...) change to -flat.vmdk.

Open winscp, Login to esxi where VM located, go to /vmfs/volumes/<datastore name>/<VM name>.

Rename file with extension ".5 (eb2fe...)" to ".vmdk", "-ctk. 5(eb2fe..)" to "-ctk.vmdk" and "-flat. 5(eb2fe...)" to "-flat-vmdk".

3. Edit VMDK FIle.

Open file with extension ".vmdk", right click, choose Edit to edit file.

Edit #Extend Description and #Change Tracking File section.

Change "-flat. 5(eb2fe...)" change to "-flat.vmdk" this for Flat Disk.

Change "-ctk. 5(eb2fe..)" change to "-ctk.vmdk" this for Change Tracking File.

Save the File.

4. Make Coffe.

5. Edit ".VMX" File.

Find in file description, strange Extension we changed before.

Change file extension into ".vmdk".

Now we need to reload VM, because ESXI not aware with this new configuration. Open SSH to ESXI where VM located and run this command to know your VM-ID.

vim-cmd vmsvc/getallvms | grep -i "<your VMName>"

No. 6 Reload VM.

My VM-ID is "842".

And Reload with this Command .
vim-cmd vmsvc/reload <VM-ID>.

Wait For a minute for ESXI to Reload. Go to vCenter, Right Click on VM, Choose Edit Setting. Make Sure disk already repointed to new one.

No. 7 Finish.

Hopelly this case not happen in your infra. Until now we cannot find what root causing this issue. As personal I suspecting storage issue, either storage latency or storage connectivity among hosts.
Happy Troubleshoot.