====== Writing Juju Charms for Windows ====== ======= Rules ======= - Charms are self contained. Under no circumstances should they have any missing pieces or require the user to manually include anything for them to work - Master branch of any charm is holy ground. If a piece of code gets in, it is expected to work without any issues. - All new features must be added as new branches. - Under no circumstances are branches to be merged into master unless they have been thoroughly tested and scrutinized. - Merges are only to be done after one or more peers have had a chance to review and aprove the code. Untill then, the code WILL remain in its feature branch - Any deviation from the above is only possible by devine intervention, or if your name is Chuck Norris. ===== Charm Structure ===== The rules of writing charms are the same in Windows as they are in linux. As a reference, the Nova Hyper-V charm can be used. The charm can be found at: https://github.com/cloudbase/nova-hyperv-charm By default, Juju adds $env:CHARM_DIR\hooks\Modules and $env:CHARM_DIR\Modules in $env:PSModulePath. So you can simply write a module, bundle it with your charm, and simply do an Import-Module in your hooks. We should strive to create a common suite of helper modules for all juju charms on windows! The CharmHelpers module in the above mentioned Hyper-V charm is a good start. Its basically a port of the Openstack charm helpers written in python. Windows Charms: 1. Windows Active Directory Controller 2. Windows Active Directory Join 3. Windows Active Directory Exchange Relations: Windows Active Directory Controller File dependencies(put them on a samba share, in the folder "Exchange". You can get them from //10.7.1.10/ISO/Exchange): Exchange ISO File: mu_exchange_server_2013_x64_dvd_1112105.iso Prerequisites installers: FilterPack64bit.exe, filterpack2010sp1-kb2460041-x64-fullfile-en-us.exe, UcmaRuntimeSetup.exe Configuration: Specify the Samba share where the file dependencies are Virtual machine requirements: CPU - more than 4 cores RAM - more than 6GB HDD - more than 40GB Beware!: You can install only one Exchange per Active Directory Domain The machine will reboot 4 times The installation will take approximately 1 hour 4. Windows Active Directory MsSQL 5. Windows Active Directory SharePoint 6. Windows IIS Drupal Relations: MySQL Memcached Windows Active Directory Controller Windows Active Directory MsSQL File dependencies: Every file dependency is downloaded from the internet using official download links and it is checked for integrity using SHA1 checksum. Minimum virtual machine requirements: CPU - 2 cores RAM - 2GB HDD - 30GB NOTE: If any download link becomes unavailable, it must be updated together its SHA1 hash. Use only official download links !