cloud-mu 1.9.0.pre.beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Berksfile +56 -0
- data/Berksfile.lock +250 -0
- data/Jenkinsfile +184 -0
- data/LICENSE.md +37 -0
- data/README.md +26 -0
- data/bin/mu-aws-setup +376 -0
- data/bin/mu-cleanup +68 -0
- data/bin/mu-configure +1133 -0
- data/bin/mu-deploy +166 -0
- data/bin/mu-firewall-allow-clients +30 -0
- data/bin/mu-gcp-setup +200 -0
- data/bin/mu-gen-docs +34 -0
- data/bin/mu-gen-env +42 -0
- data/bin/mu-load-config.rb +158 -0
- data/bin/mu-node-manage +683 -0
- data/bin/mu-self-update +228 -0
- data/bin/mu-ssh +23 -0
- data/bin/mu-tunnel-nagios +144 -0
- data/bin/mu-upload-chef-artifacts +757 -0
- data/bin/mu-user-manage +275 -0
- data/cookbooks/awscli/LICENSE +37 -0
- data/cookbooks/awscli/README.md +58 -0
- data/cookbooks/awscli/attributes/default.rb +1 -0
- data/cookbooks/awscli/libraries/instance_metadata.rb +21 -0
- data/cookbooks/awscli/metadata.rb +20 -0
- data/cookbooks/awscli/recipes/default.rb +56 -0
- data/cookbooks/awscli/templates/default/config.erb +18 -0
- data/cookbooks/mu-activedirectory/CHANGELOG.md +13 -0
- data/cookbooks/mu-activedirectory/LICENSE +37 -0
- data/cookbooks/mu-activedirectory/README.md +6 -0
- data/cookbooks/mu-activedirectory/attributes/default.rb +98 -0
- data/cookbooks/mu-activedirectory/files/default/password-auth +32 -0
- data/cookbooks/mu-activedirectory/files/default/sshd_pol.pp +0 -0
- data/cookbooks/mu-activedirectory/files/default/sshd_pol.te +32 -0
- data/cookbooks/mu-activedirectory/files/default/syslogd_oddjobd.pp +0 -0
- data/cookbooks/mu-activedirectory/files/default/syslogd_oddjobd.te +10 -0
- data/cookbooks/mu-activedirectory/files/default/system-auth +34 -0
- data/cookbooks/mu-activedirectory/files/default/winbindpol.pp +0 -0
- data/cookbooks/mu-activedirectory/files/default/winbindpol.te +37 -0
- data/cookbooks/mu-activedirectory/libraries/config.rb +106 -0
- data/cookbooks/mu-activedirectory/libraries/helper.rb +86 -0
- data/cookbooks/mu-activedirectory/metadata.rb +17 -0
- data/cookbooks/mu-activedirectory/providers/domain.rb +152 -0
- data/cookbooks/mu-activedirectory/providers/domain_controller.rb +89 -0
- data/cookbooks/mu-activedirectory/providers/domain_node.rb +275 -0
- data/cookbooks/mu-activedirectory/recipes/default.rb +8 -0
- data/cookbooks/mu-activedirectory/recipes/domain-controller.rb +44 -0
- data/cookbooks/mu-activedirectory/recipes/domain-node.rb +50 -0
- data/cookbooks/mu-activedirectory/recipes/domain.rb +43 -0
- data/cookbooks/mu-activedirectory/recipes/sssd.rb +185 -0
- data/cookbooks/mu-activedirectory/resources/domain.rb +25 -0
- data/cookbooks/mu-activedirectory/resources/domain_controller.rb +25 -0
- data/cookbooks/mu-activedirectory/resources/domain_node.rb +20 -0
- data/cookbooks/mu-activedirectory/templates/default/dhclient-eth0.conf.erb +4 -0
- data/cookbooks/mu-activedirectory/templates/default/interface +0 -0
- data/cookbooks/mu-activedirectory/templates/default/krb5.conf.erb +23 -0
- data/cookbooks/mu-activedirectory/templates/default/ntp.conf.erb +56 -0
- data/cookbooks/mu-activedirectory/templates/default/smb.conf.erb +33 -0
- data/cookbooks/mu-activedirectory/templates/default/sssd.conf.erb +60 -0
- data/cookbooks/mu-activedirectory/templates/windows/Backup.xml.erb +20 -0
- data/cookbooks/mu-activedirectory/templates/windows/bkupInfo.xml.erb +1 -0
- data/cookbooks/mu-activedirectory/templates/windows/gpreprt.xml.erb +198 -0
- data/cookbooks/mu-activedirectory/templates/windows/gptmpl.inf.erb +12 -0
- data/cookbooks/mu-activedirectory/templates/windows/manifest.xml.erb +1 -0
- data/cookbooks/mu-firewall/CHANGELOG.md +11 -0
- data/cookbooks/mu-firewall/LICENSE +37 -0
- data/cookbooks/mu-firewall/README.md +5 -0
- data/cookbooks/mu-firewall/attributes/default.rb +3 -0
- data/cookbooks/mu-firewall/metadata.rb +16 -0
- data/cookbooks/mu-firewall/recipes/default.rb +10 -0
- data/cookbooks/mu-glusterfs/CHANGELOG.md +13 -0
- data/cookbooks/mu-glusterfs/LICENSE +37 -0
- data/cookbooks/mu-glusterfs/README.md +5 -0
- data/cookbooks/mu-glusterfs/attributes/default.rb +34 -0
- data/cookbooks/mu-glusterfs/metadata.rb +17 -0
- data/cookbooks/mu-glusterfs/recipes/client.rb +62 -0
- data/cookbooks/mu-glusterfs/recipes/default.rb +16 -0
- data/cookbooks/mu-glusterfs/recipes/samba.rb +57 -0
- data/cookbooks/mu-glusterfs/recipes/server.rb +200 -0
- data/cookbooks/mu-glusterfs/templates/default/mu-gluster-client.erb +71 -0
- data/cookbooks/mu-glusterfs/templates/default/smb.conf.erb +14 -0
- data/cookbooks/mu-jenkins/CHANGELOG.md +13 -0
- data/cookbooks/mu-jenkins/LICENSE +37 -0
- data/cookbooks/mu-jenkins/README.md +105 -0
- data/cookbooks/mu-jenkins/attributes/default.rb +42 -0
- data/cookbooks/mu-jenkins/files/default/cleanup_deploy_config.xml +73 -0
- data/cookbooks/mu-jenkins/files/default/deploy_config.xml +44 -0
- data/cookbooks/mu-jenkins/metadata.rb +21 -0
- data/cookbooks/mu-jenkins/recipes/default.rb +195 -0
- data/cookbooks/mu-jenkins/recipes/node-ssh-config.rb +54 -0
- data/cookbooks/mu-jenkins/recipes/public_key.rb +24 -0
- data/cookbooks/mu-jenkins/templates/default/example_job.config.xml.erb +24 -0
- data/cookbooks/mu-jenkins/templates/default/org.jvnet.hudson.plugins.SSHBuildWrapper.xml.erb +14 -0
- data/cookbooks/mu-jenkins/templates/default/ssh_config.erb +6 -0
- data/cookbooks/mu-master/CHANGELOG.md +13 -0
- data/cookbooks/mu-master/LICENSE +37 -0
- data/cookbooks/mu-master/README.md +6 -0
- data/cookbooks/mu-master/attributes/default.rb +95 -0
- data/cookbooks/mu-master/files/default/0-mu-log-server.conf +19 -0
- data/cookbooks/mu-master/files/default/addRSA.ldif +8 -0
- data/cookbooks/mu-master/files/default/check_mem.pl +197 -0
- data/cookbooks/mu-master/files/default/cloudamatic.png +0 -0
- data/cookbooks/mu-master/files/default/dirsrv_admin.pp +0 -0
- data/cookbooks/mu-master/files/default/dirsrv_admin.te +13 -0
- data/cookbooks/mu-master/files/default/nagios_selinux.pp +0 -0
- data/cookbooks/mu-master/files/default/nagios_selinux.te +51 -0
- data/cookbooks/mu-master/files/default/nagios_selinux_7.pp +0 -0
- data/cookbooks/mu-master/files/default/nagios_selinux_7.te +17 -0
- data/cookbooks/mu-master/files/default/pam_sshd +18 -0
- data/cookbooks/mu-master/files/default/ssl_enable.ldif +18 -0
- data/cookbooks/mu-master/files/default/syslogd_oddjobd.pp +0 -0
- data/cookbooks/mu-master/files/default/syslogd_oddjobd.te +10 -0
- data/cookbooks/mu-master/files/default/vimrc +19 -0
- data/cookbooks/mu-master/libraries/mu.rb +29 -0
- data/cookbooks/mu-master/metadata.rb +30 -0
- data/cookbooks/mu-master/providers/user.rb +41 -0
- data/cookbooks/mu-master/recipes/389ds.rb +164 -0
- data/cookbooks/mu-master/recipes/basepackages.rb +58 -0
- data/cookbooks/mu-master/recipes/caching_nameserver.rb +37 -0
- data/cookbooks/mu-master/recipes/default.rb +451 -0
- data/cookbooks/mu-master/recipes/eks-kubectl.rb +41 -0
- data/cookbooks/mu-master/recipes/firewall-holes.rb +70 -0
- data/cookbooks/mu-master/recipes/init.rb +542 -0
- data/cookbooks/mu-master/recipes/ssl-certs.rb +109 -0
- data/cookbooks/mu-master/recipes/sssd.rb +89 -0
- data/cookbooks/mu-master/recipes/update_nagios_only.rb +242 -0
- data/cookbooks/mu-master/recipes/vault.rb +111 -0
- data/cookbooks/mu-master/resources/user.rb +19 -0
- data/cookbooks/mu-master/templates/default/389-directory-setup.inf.erb +28 -0
- data/cookbooks/mu-master/templates/default/chef-server.rb.erb +18 -0
- data/cookbooks/mu-master/templates/default/dhclient-eth0.conf.erb +9 -0
- data/cookbooks/mu-master/templates/default/mu-momma-cat.erb +149 -0
- data/cookbooks/mu-master/templates/default/mu.rc.erb +9 -0
- data/cookbooks/mu-master/templates/default/openssl.cnf.erb +354 -0
- data/cookbooks/mu-master/templates/default/sssd.conf.erb +44 -0
- data/cookbooks/mu-master/templates/default/web_app.conf.erb +90 -0
- data/cookbooks/mu-mongo/CHANGELOG.md +13 -0
- data/cookbooks/mu-mongo/LICENSE +37 -0
- data/cookbooks/mu-mongo/README.md +5 -0
- data/cookbooks/mu-mongo/attributes/default.rb +22 -0
- data/cookbooks/mu-mongo/files/default/keyfile +16 -0
- data/cookbooks/mu-mongo/files/default/remove_nodes.js +5 -0
- data/cookbooks/mu-mongo/metadata.rb +17 -0
- data/cookbooks/mu-mongo/recipes/default.rb +149 -0
- data/cookbooks/mu-mongo/recipes/yum-update-rule.rb +18 -0
- data/cookbooks/mu-mongo/templates/default/mongo_create_openfema_db.js.erb +2 -0
- data/cookbooks/mu-mongo/templates/default/mongo_init.js.erb +1 -0
- data/cookbooks/mu-mongo/templates/default/mongo_logrotate.erb +14 -0
- data/cookbooks/mu-mongo/templates/default/mongo_replset_addnodes.js.erb +6 -0
- data/cookbooks/mu-mongo/templates/default/replset_init.js.erb +2 -0
- data/cookbooks/mu-openvpn/CHANGELOG.md +13 -0
- data/cookbooks/mu-openvpn/LICENSE +37 -0
- data/cookbooks/mu-openvpn/README.md +6 -0
- data/cookbooks/mu-openvpn/attributes/default.rb +119 -0
- data/cookbooks/mu-openvpn/metadata.rb +18 -0
- data/cookbooks/mu-openvpn/recipes/default.rb +108 -0
- data/cookbooks/mu-openvpn/templates/default/users.json.erb +42 -0
- data/cookbooks/mu-php54/CHANGELOG.md +12 -0
- data/cookbooks/mu-php54/LICENSE +37 -0
- data/cookbooks/mu-php54/README.md +0 -0
- data/cookbooks/mu-php54/files/centos/php.ini +1802 -0
- data/cookbooks/mu-php54/files/ubuntu/php.ini +1870 -0
- data/cookbooks/mu-php54/metadata.rb +21 -0
- data/cookbooks/mu-php54/recipes/default.rb +97 -0
- data/cookbooks/mu-splunk/CHANGELOG.md +37 -0
- data/cookbooks/mu-splunk/LICENSE +37 -0
- data/cookbooks/mu-splunk/README.md +451 -0
- data/cookbooks/mu-splunk/attributes/default.rb +95 -0
- data/cookbooks/mu-splunk/attributes/upgrade.rb +49 -0
- data/cookbooks/mu-splunk/definitions/splunk_installer.rb +103 -0
- data/cookbooks/mu-splunk/files/default/splunk-nocheck +10 -0
- data/cookbooks/mu-splunk/libraries/helpers.rb +72 -0
- data/cookbooks/mu-splunk/libraries/splunk_app_provider.rb +156 -0
- data/cookbooks/mu-splunk/libraries/splunk_app_resource.rb +43 -0
- data/cookbooks/mu-splunk/metadata.json +30 -0
- data/cookbooks/mu-splunk/metadata.rb +17 -0
- data/cookbooks/mu-splunk/recipes/client.rb +143 -0
- data/cookbooks/mu-splunk/recipes/default.rb +31 -0
- data/cookbooks/mu-splunk/recipes/disabled.rb +41 -0
- data/cookbooks/mu-splunk/recipes/install_forwarder.rb +23 -0
- data/cookbooks/mu-splunk/recipes/install_server.rb +23 -0
- data/cookbooks/mu-splunk/recipes/server.rb +53 -0
- data/cookbooks/mu-splunk/recipes/service.rb +95 -0
- data/cookbooks/mu-splunk/recipes/setup_auth.rb +49 -0
- data/cookbooks/mu-splunk/recipes/setup_ssl.rb +63 -0
- data/cookbooks/mu-splunk/recipes/upgrade.rb +94 -0
- data/cookbooks/mu-splunk/recipes/user.rb +34 -0
- data/cookbooks/mu-splunk/templates/default/base_logs_unix_inputs.conf.erb +26 -0
- data/cookbooks/mu-splunk/templates/default/inputs.conf.erb +13 -0
- data/cookbooks/mu-splunk/templates/default/outputs.conf.erb +9 -0
- data/cookbooks/mu-splunk/templates/default/splunk-init.erb +74 -0
- data/cookbooks/mu-splunk/templates/default/system-web.conf.erb +7 -0
- data/cookbooks/mu-tools/CHANGELOG.md +12 -0
- data/cookbooks/mu-tools/LICENSE +37 -0
- data/cookbooks/mu-tools/README.md +188 -0
- data/cookbooks/mu-tools/attributes/default.rb +142 -0
- data/cookbooks/mu-tools/attributes/ebs_rolling_snapshots.rb +3 -0
- data/cookbooks/mu-tools/files/amazon/etc/freshclam.conf +235 -0
- data/cookbooks/mu-tools/files/centos/CentOS-Base.repo +52 -0
- data/cookbooks/mu-tools/files/centos/etc/bashrc +93 -0
- data/cookbooks/mu-tools/files/centos/etc/freshclam.conf +235 -0
- data/cookbooks/mu-tools/files/centos/etc/login.defs +72 -0
- data/cookbooks/mu-tools/files/centos/etc/profile +77 -0
- data/cookbooks/mu-tools/files/centos/etc/security/limits.conf +57 -0
- data/cookbooks/mu-tools/files/centos/etc/sysconfig/init +19 -0
- data/cookbooks/mu-tools/files/centos/etc/sysctl.conf +82 -0
- data/cookbooks/mu-tools/files/centos-6/README_MU +0 -0
- data/cookbooks/mu-tools/files/centos-6/etc/audit/stig.rules +173 -0
- data/cookbooks/mu-tools/files/centos-6/etc/bashrc +90 -0
- data/cookbooks/mu-tools/files/centos-6/etc/login.defs +70 -0
- data/cookbooks/mu-tools/files/centos-6/etc/pam.d/su +12 -0
- data/cookbooks/mu-tools/files/centos-6/etc/profile +83 -0
- data/cookbooks/mu-tools/files/centos-6/etc/securetty +12 -0
- data/cookbooks/mu-tools/files/centos-6/etc/sysconfig/init +30 -0
- data/cookbooks/mu-tools/files/centos-6/etc/sysctl.conf +40 -0
- data/cookbooks/mu-tools/files/default/Mu_CA.pem +34 -0
- data/cookbooks/mu-tools/files/default/PSWindowsUpdate.zip +0 -0
- data/cookbooks/mu-tools/files/default/ebs_snapshots.py +123 -0
- data/cookbooks/mu-tools/files/default/etc/BANNER +0 -0
- data/cookbooks/mu-tools/files/default/etc/BANNER-FEDERAL +19 -0
- data/cookbooks/mu-tools/files/default/gpo_no_uac.zip +0 -0
- data/cookbooks/mu-tools/files/default/mypol.pp +0 -0
- data/cookbooks/mu-tools/files/default/mypol.te +37 -0
- data/cookbooks/mu-tools/files/default/nrpe_c7.pp +0 -0
- data/cookbooks/mu-tools/files/default/nrpe_c7.te +31 -0
- data/cookbooks/mu-tools/files/default/nrpe_check_disk.pp +0 -0
- data/cookbooks/mu-tools/files/default/nrpe_check_disk.te +11 -0
- data/cookbooks/mu-tools/files/default/nrpe_disk.pp +0 -0
- data/cookbooks/mu-tools/files/default/nrpe_disk.te +10 -0
- data/cookbooks/mu-tools/files/default/nrpe_file.pp +0 -0
- data/cookbooks/mu-tools/files/default/nrpe_file.te +31 -0
- data/cookbooks/mu-tools/files/default/ntrights +0 -0
- data/cookbooks/mu-tools/files/default/serverclass.conf +18 -0
- data/cookbooks/mu-tools/files/default/splunk-apps/base_logs_unix/local/app.conf +1 -0
- data/cookbooks/mu-tools/files/default/splunk-apps/base_logs_unix/local/inputs.conf +13 -0
- data/cookbooks/mu-tools/files/default/splunk-apps/base_logs_windows/local/app.conf +1 -0
- data/cookbooks/mu-tools/files/default/splunk-apps/base_logs_windows/local/inputs.conf +8 -0
- data/cookbooks/mu-tools/files/default/sshd_pol.pp +0 -0
- data/cookbooks/mu-tools/files/default/sshd_pol.te +32 -0
- data/cookbooks/mu-tools/files/redhat/etc/bashrc +93 -0
- data/cookbooks/mu-tools/files/redhat/etc/freshclam.conf +235 -0
- data/cookbooks/mu-tools/files/redhat/etc/login.defs +72 -0
- data/cookbooks/mu-tools/files/redhat/etc/profile +77 -0
- data/cookbooks/mu-tools/files/redhat/etc/security/limits.conf +57 -0
- data/cookbooks/mu-tools/files/redhat/etc/sysconfig/init +19 -0
- data/cookbooks/mu-tools/files/redhat/etc/sysctl.conf +82 -0
- data/cookbooks/mu-tools/files/redhat-6/README_MU +0 -0
- data/cookbooks/mu-tools/files/redhat-6/etc/audit/stig.rules +173 -0
- data/cookbooks/mu-tools/files/redhat-6/etc/bashrc +90 -0
- data/cookbooks/mu-tools/files/redhat-6/etc/login.defs +70 -0
- data/cookbooks/mu-tools/files/redhat-6/etc/pam.d/su +12 -0
- data/cookbooks/mu-tools/files/redhat-6/etc/profile +83 -0
- data/cookbooks/mu-tools/files/redhat-6/etc/securetty +12 -0
- data/cookbooks/mu-tools/files/redhat-6/etc/sysconfig/init +30 -0
- data/cookbooks/mu-tools/files/redhat-6/etc/sysctl.conf +40 -0
- data/cookbooks/mu-tools/files/redhat-7.1/etc/freshclam.conf +235 -0
- data/cookbooks/mu-tools/files/ubuntu-12.04/etc/bash.bashrc +64 -0
- data/cookbooks/mu-tools/files/ubuntu-12.04/etc/common-session +30 -0
- data/cookbooks/mu-tools/files/ubuntu-12.04/etc/login.defs +338 -0
- data/cookbooks/mu-tools/files/ubuntu-12.04/etc/profile +30 -0
- data/cookbooks/mu-tools/files/ubuntu-12.04/etc/security/limits.conf +56 -0
- data/cookbooks/mu-tools/files/ubuntu-12.04/etc/sysctl.conf +60 -0
- data/cookbooks/mu-tools/libraries/helper.rb +292 -0
- data/cookbooks/mu-tools/metadata.rb +28 -0
- data/cookbooks/mu-tools/recipes/add_admin_ssh_keys.rb +35 -0
- data/cookbooks/mu-tools/recipes/apply_security.rb +440 -0
- data/cookbooks/mu-tools/recipes/aws_api.rb +23 -0
- data/cookbooks/mu-tools/recipes/base_repositories.rb +31 -0
- data/cookbooks/mu-tools/recipes/cisbenchmark.rb +59 -0
- data/cookbooks/mu-tools/recipes/clamav.rb +53 -0
- data/cookbooks/mu-tools/recipes/cloudinit.rb +58 -0
- data/cookbooks/mu-tools/recipes/configure_oracle_tools.rb +81 -0
- data/cookbooks/mu-tools/recipes/disable-requiretty.rb +22 -0
- data/cookbooks/mu-tools/recipes/ebs_rolling_snapshots.rb +75 -0
- data/cookbooks/mu-tools/recipes/efs.rb +70 -0
- data/cookbooks/mu-tools/recipes/eks.rb +160 -0
- data/cookbooks/mu-tools/recipes/gcloud.rb +98 -0
- data/cookbooks/mu-tools/recipes/google_api.rb +25 -0
- data/cookbooks/mu-tools/recipes/maldet.rb +67 -0
- data/cookbooks/mu-tools/recipes/nagios.rb +19 -0
- data/cookbooks/mu-tools/recipes/newclient.rb +23 -0
- data/cookbooks/mu-tools/recipes/nrpe.rb +115 -0
- data/cookbooks/mu-tools/recipes/python_pip.rb +35 -0
- data/cookbooks/mu-tools/recipes/retrieve_application.rb +51 -0
- data/cookbooks/mu-tools/recipes/rsyslog.rb +65 -0
- data/cookbooks/mu-tools/recipes/set_local_fw.rb +57 -0
- data/cookbooks/mu-tools/recipes/set_mu_hostname.rb +81 -0
- data/cookbooks/mu-tools/recipes/split_var_partitions.rb +86 -0
- data/cookbooks/mu-tools/recipes/splunk-client.rb +69 -0
- data/cookbooks/mu-tools/recipes/splunk-server.rb +104 -0
- data/cookbooks/mu-tools/recipes/store_inspec_attr.rb +8 -0
- data/cookbooks/mu-tools/recipes/updates.rb +96 -0
- data/cookbooks/mu-tools/recipes/windows-client.rb +202 -0
- data/cookbooks/mu-tools/resources/aws_windows.rb +33 -0
- data/cookbooks/mu-tools/resources/disk.rb +88 -0
- data/cookbooks/mu-tools/resources/mommacat_request.rb +11 -0
- data/cookbooks/mu-tools/resources/scheduled_tasks.rb +29 -0
- data/cookbooks/mu-tools/resources/sshd_service.rb +45 -0
- data/cookbooks/mu-tools/resources/windows_users.rb +242 -0
- data/cookbooks/mu-tools/templates/amazon/sshd_config.erb +168 -0
- data/cookbooks/mu-tools/templates/centos-6/sshd_config.erb +212 -0
- data/cookbooks/mu-tools/templates/centos-7/sshd_config.erb +215 -0
- data/cookbooks/mu-tools/templates/default/0-mu-log-client.conf.erb +13 -0
- data/cookbooks/mu-tools/templates/default/conf.maldet.erb +137 -0
- data/cookbooks/mu-tools/templates/default/etc_hosts.erb +30 -0
- data/cookbooks/mu-tools/templates/default/etc_pamd_password-auth.erb +14 -0
- data/cookbooks/mu-tools/templates/default/etc_pamd_system-auth.erb +14 -0
- data/cookbooks/mu-tools/templates/default/etc_sysconfig_network.erb +12 -0
- data/cookbooks/mu-tools/templates/default/kubeconfig.erb +29 -0
- data/cookbooks/mu-tools/templates/default/kubelet.service.erb +35 -0
- data/cookbooks/mu-tools/templates/default/maldet_scanall.sh.erb +15 -0
- data/cookbooks/mu-tools/templates/default/nrpe.cfg.erb +233 -0
- data/cookbooks/mu-tools/templates/redhat-6/sshd_config.erb +213 -0
- data/cookbooks/mu-tools/templates/redhat-7/sshd_config.erb +215 -0
- data/cookbooks/mu-tools/templates/ubuntu-12.04/sshd_config.erb +146 -0
- data/cookbooks/mu-tools/templates/ubuntu-14.04/sshd_config.erb +145 -0
- data/cookbooks/mu-tools/templates/windows/Backup.xml.erb +20 -0
- data/cookbooks/mu-tools/templates/windows/bkupInfo.xml.erb +1 -0
- data/cookbooks/mu-tools/templates/windows/gpreprt.xml.erb +214 -0
- data/cookbooks/mu-tools/templates/windows/gptmpl.inf.erb +12 -0
- data/cookbooks/mu-tools/templates/windows/manifest.xml.erb +1 -0
- data/cookbooks/mu-tools/templates/windows/set_ad_dns_scheduled_task.ps1.erb +6 -0
- data/cookbooks/mu-tools/templates/windows/sshd_config.erb +136 -0
- data/cookbooks/mu-utility/CHANGELOG.md +12 -0
- data/cookbooks/mu-utility/LICENSE +37 -0
- data/cookbooks/mu-utility/README.md +6 -0
- data/cookbooks/mu-utility/attributes/default.rb +1 -0
- data/cookbooks/mu-utility/libraries/matchers.rb +21 -0
- data/cookbooks/mu-utility/metadata.rb +16 -0
- data/cookbooks/mu-utility/recipes/apt.rb +23 -0
- data/cookbooks/mu-utility/recipes/cleanup_image_helper.rb +118 -0
- data/cookbooks/mu-utility/recipes/iptables.rb +26 -0
- data/cookbooks/mu-utility/recipes/luks.rb +18 -0
- data/cookbooks/mu-utility/recipes/nat.rb +104 -0
- data/cookbooks/mu-utility/recipes/php.rb +33 -0
- data/cookbooks/mu-utility/recipes/rdp_gateway.rb +83 -0
- data/cookbooks/mu-utility/recipes/remi.rb +44 -0
- data/cookbooks/mu-utility/recipes/vim.rb +26 -0
- data/cookbooks/mu-utility/recipes/windows_basics.rb +37 -0
- data/cookbooks/mu-utility/recipes/zip.rb +26 -0
- data/cookbooks/mu-utility/templates/default/BundleConfig.xml.erb +34 -0
- data/cookbooks/mu-utility/templates/default/config.xml.erb +60 -0
- data/cookbooks/nagios/Berksfile +8 -0
- data/cookbooks/nagios/CHANGELOG.md +589 -0
- data/cookbooks/nagios/CONTRIBUTING.md +11 -0
- data/cookbooks/nagios/LICENSE +37 -0
- data/cookbooks/nagios/README.md +328 -0
- data/cookbooks/nagios/TESTING.md +2 -0
- data/cookbooks/nagios/attributes/config.rb +171 -0
- data/cookbooks/nagios/attributes/default.rb +228 -0
- data/cookbooks/nagios/chefignore +102 -0
- data/cookbooks/nagios/definitions/command.rb +33 -0
- data/cookbooks/nagios/definitions/contact.rb +33 -0
- data/cookbooks/nagios/definitions/contactgroup.rb +33 -0
- data/cookbooks/nagios/definitions/host.rb +33 -0
- data/cookbooks/nagios/definitions/hostdependency.rb +33 -0
- data/cookbooks/nagios/definitions/hostescalation.rb +34 -0
- data/cookbooks/nagios/definitions/hostgroup.rb +33 -0
- data/cookbooks/nagios/definitions/nagios_conf.rb +38 -0
- data/cookbooks/nagios/definitions/resource.rb +33 -0
- data/cookbooks/nagios/definitions/service.rb +33 -0
- data/cookbooks/nagios/definitions/servicedependency.rb +33 -0
- data/cookbooks/nagios/definitions/serviceescalation.rb +34 -0
- data/cookbooks/nagios/definitions/servicegroup.rb +33 -0
- data/cookbooks/nagios/definitions/timeperiod.rb +33 -0
- data/cookbooks/nagios/libraries/base.rb +314 -0
- data/cookbooks/nagios/libraries/command.rb +91 -0
- data/cookbooks/nagios/libraries/contact.rb +230 -0
- data/cookbooks/nagios/libraries/contactgroup.rb +112 -0
- data/cookbooks/nagios/libraries/custom_option.rb +36 -0
- data/cookbooks/nagios/libraries/data_bag_helper.rb +23 -0
- data/cookbooks/nagios/libraries/default.rb +90 -0
- data/cookbooks/nagios/libraries/host.rb +412 -0
- data/cookbooks/nagios/libraries/hostdependency.rb +181 -0
- data/cookbooks/nagios/libraries/hostescalation.rb +173 -0
- data/cookbooks/nagios/libraries/hostgroup.rb +119 -0
- data/cookbooks/nagios/libraries/nagios.rb +282 -0
- data/cookbooks/nagios/libraries/resource.rb +59 -0
- data/cookbooks/nagios/libraries/service.rb +455 -0
- data/cookbooks/nagios/libraries/servicedependency.rb +215 -0
- data/cookbooks/nagios/libraries/serviceescalation.rb +195 -0
- data/cookbooks/nagios/libraries/servicegroup.rb +144 -0
- data/cookbooks/nagios/libraries/timeperiod.rb +160 -0
- data/cookbooks/nagios/libraries/users_helper.rb +54 -0
- data/cookbooks/nagios/metadata.rb +25 -0
- data/cookbooks/nagios/recipes/_load_databag_config.rb +153 -0
- data/cookbooks/nagios/recipes/_load_default_config.rb +241 -0
- data/cookbooks/nagios/recipes/apache.rb +48 -0
- data/cookbooks/nagios/recipes/default.rb +204 -0
- data/cookbooks/nagios/recipes/nginx.rb +82 -0
- data/cookbooks/nagios/recipes/pagerduty.rb +143 -0
- data/cookbooks/nagios/recipes/server_package.rb +40 -0
- data/cookbooks/nagios/recipes/server_source.rb +164 -0
- data/cookbooks/nagios/templates/default/apache2.conf.erb +96 -0
- data/cookbooks/nagios/templates/default/cgi.cfg.erb +266 -0
- data/cookbooks/nagios/templates/default/commands.cfg.erb +13 -0
- data/cookbooks/nagios/templates/default/contacts.cfg.erb +37 -0
- data/cookbooks/nagios/templates/default/hostgroups.cfg.erb +25 -0
- data/cookbooks/nagios/templates/default/hosts.cfg.erb +15 -0
- data/cookbooks/nagios/templates/default/htpasswd.users.erb +6 -0
- data/cookbooks/nagios/templates/default/nagios.cfg.erb +22 -0
- data/cookbooks/nagios/templates/default/nginx.conf.erb +62 -0
- data/cookbooks/nagios/templates/default/pagerduty.cgi.erb +185 -0
- data/cookbooks/nagios/templates/default/resource.cfg.erb +27 -0
- data/cookbooks/nagios/templates/default/servicedependencies.cfg.erb +15 -0
- data/cookbooks/nagios/templates/default/servicegroups.cfg.erb +14 -0
- data/cookbooks/nagios/templates/default/services.cfg.erb +14 -0
- data/cookbooks/nagios/templates/default/templates.cfg.erb +31 -0
- data/cookbooks/nagios/templates/default/timeperiods.cfg.erb +13 -0
- data/cookbooks/s3fs/CHANGELOG.md +13 -0
- data/cookbooks/s3fs/LICENSE +37 -0
- data/cookbooks/s3fs/README.md +6 -0
- data/cookbooks/s3fs/attributes/default.rb +15 -0
- data/cookbooks/s3fs/files/default/fuse-2.9.3.zip +0 -0
- data/cookbooks/s3fs/metadata.rb +16 -0
- data/cookbooks/s3fs/recipes/default.rb +91 -0
- data/data_bags/demo/app.json +7 -0
- data/data_bags/nagios_services/chef.json +6 -0
- data/data_bags/nagios_services/linux_diskspace.json +5 -0
- data/data_bags/nagios_services/momma_cat.json +6 -0
- data/data_bags/nagios_services/mu-master-memory.json +5 -0
- data/data_bags/nagios_services/nagios_ui.json +6 -0
- data/data_bags/nagios_services/node_ssh.json +6 -0
- data/data_bags/nagios_services/ssh.json +6 -0
- data/demo/lambda_test.yaml +29 -0
- data/environments/DEV.json +8 -0
- data/environments/PROD.json +8 -0
- data/environments/dev.json +8 -0
- data/environments/development.json +8 -0
- data/environments/prod.json +8 -0
- data/extras/README.md +1 -0
- data/extras/admin-role-binding.yaml +16 -0
- data/extras/admin-user.yaml +6 -0
- data/extras/aws-auth-cm.yaml.erb +12 -0
- data/extras/clean-stock-amis +48 -0
- data/extras/git-fix-permissions-hook +12 -0
- data/extras/gitlab-eks-helper.sh.erb +20 -0
- data/extras/image-generators/README.md +2 -0
- data/extras/image-generators/aws/centos6.yaml +18 -0
- data/extras/image-generators/aws/centos7-govcloud.yaml +24 -0
- data/extras/image-generators/aws/centos7.yaml +17 -0
- data/extras/image-generators/aws/rhel7.yaml +17 -0
- data/extras/image-generators/aws/win2k12.yaml +16 -0
- data/extras/image-generators/aws/win2k16.yaml +16 -0
- data/extras/image-generators/aws/windows.yaml +18 -0
- data/extras/image-generators/gcp/centos6.yaml +17 -0
- data/extras/lambda_waf_domain_blacklist.py +103 -0
- data/extras/platform_berksfile_base +50 -0
- data/extras/ruby_rpm/build.sh +17 -0
- data/extras/ruby_rpm/muby.spec +44 -0
- data/extras/vault_tools/README.md +6 -0
- data/extras/vault_tools/export_vaults.sh +3 -0
- data/extras/vault_tools/recreate_vaults.sh +5 -0
- data/extras/vault_tools/test_vaults.sh +5 -0
- data/install/README.md +8 -0
- data/install/cfn_create_mu_master.json +1034 -0
- data/install/chef-server.rb.erb +19 -0
- data/install/deprecated-bash-library.sh +1891 -0
- data/install/images/Usage.png +0 -0
- data/install/installer +71 -0
- data/install/jenkinskeys.rb +8 -0
- data/install/user-dot-murc.erb +14 -0
- data/modules/html.erb +19 -0
- data/modules/mommacat.ru +426 -0
- data/modules/mu/cleanup.rb +339 -0
- data/modules/mu/cloud.rb +1446 -0
- data/modules/mu/clouds/README.md +201 -0
- data/modules/mu/clouds/aws/alarm.rb +319 -0
- data/modules/mu/clouds/aws/cache_cluster.rb +1010 -0
- data/modules/mu/clouds/aws/collection.rb +373 -0
- data/modules/mu/clouds/aws/container_cluster.rb +667 -0
- data/modules/mu/clouds/aws/database.rb +1836 -0
- data/modules/mu/clouds/aws/dnszone.rb +911 -0
- data/modules/mu/clouds/aws/firewall_rule.rb +641 -0
- data/modules/mu/clouds/aws/folder.rb +92 -0
- data/modules/mu/clouds/aws/function.rb +349 -0
- data/modules/mu/clouds/aws/group.rb +251 -0
- data/modules/mu/clouds/aws/loadbalancer.rb +888 -0
- data/modules/mu/clouds/aws/log.rb +363 -0
- data/modules/mu/clouds/aws/msg_queue.rb +480 -0
- data/modules/mu/clouds/aws/notification.rb +139 -0
- data/modules/mu/clouds/aws/role.rb +656 -0
- data/modules/mu/clouds/aws/search_domain.rb +646 -0
- data/modules/mu/clouds/aws/server.rb +2294 -0
- data/modules/mu/clouds/aws/server_pool.rb +1388 -0
- data/modules/mu/clouds/aws/storage_pool.rb +495 -0
- data/modules/mu/clouds/aws/user.rb +382 -0
- data/modules/mu/clouds/aws/userdata/README.md +4 -0
- data/modules/mu/clouds/aws/userdata/linux.erb +179 -0
- data/modules/mu/clouds/aws/userdata/windows.erb +278 -0
- data/modules/mu/clouds/aws/vpc.rb +1943 -0
- data/modules/mu/clouds/aws.rb +1009 -0
- data/modules/mu/clouds/cloudformation/alarm.rb +146 -0
- data/modules/mu/clouds/cloudformation/cache_cluster.rb +167 -0
- data/modules/mu/clouds/cloudformation/collection.rb +117 -0
- data/modules/mu/clouds/cloudformation/database.rb +278 -0
- data/modules/mu/clouds/cloudformation/dnszone.rb +274 -0
- data/modules/mu/clouds/cloudformation/firewall_rule.rb +308 -0
- data/modules/mu/clouds/cloudformation/loadbalancer.rb +193 -0
- data/modules/mu/clouds/cloudformation/log.rb +170 -0
- data/modules/mu/clouds/cloudformation/server.rb +370 -0
- data/modules/mu/clouds/cloudformation/server_pool.rb +279 -0
- data/modules/mu/clouds/cloudformation/vpc.rb +322 -0
- data/modules/mu/clouds/cloudformation.rb +733 -0
- data/modules/mu/clouds/docker.rb +30 -0
- data/modules/mu/clouds/google/container_cluster.rb +290 -0
- data/modules/mu/clouds/google/database.rb +152 -0
- data/modules/mu/clouds/google/firewall_rule.rb +267 -0
- data/modules/mu/clouds/google/group.rb +164 -0
- data/modules/mu/clouds/google/loadbalancer.rb +479 -0
- data/modules/mu/clouds/google/server.rb +1510 -0
- data/modules/mu/clouds/google/server_pool.rb +274 -0
- data/modules/mu/clouds/google/user.rb +266 -0
- data/modules/mu/clouds/google/userdata/README.md +4 -0
- data/modules/mu/clouds/google/userdata/linux.erb +137 -0
- data/modules/mu/clouds/google/userdata/windows.erb +275 -0
- data/modules/mu/clouds/google/vpc.rb +890 -0
- data/modules/mu/clouds/google.rb +811 -0
- data/modules/mu/config/README.md +11 -0
- data/modules/mu/config/alarm.rb +271 -0
- data/modules/mu/config/cache_cluster.rb +172 -0
- data/modules/mu/config/collection.rb +87 -0
- data/modules/mu/config/container_cluster.rb +103 -0
- data/modules/mu/config/container_cluster.yml +36 -0
- data/modules/mu/config/database.rb +458 -0
- data/modules/mu/config/database.yml +26 -0
- data/modules/mu/config/dnszone.rb +327 -0
- data/modules/mu/config/firewall_rule.rb +118 -0
- data/modules/mu/config/folder.rb +70 -0
- data/modules/mu/config/function.rb +140 -0
- data/modules/mu/config/group.rb +64 -0
- data/modules/mu/config/loadbalancer.rb +482 -0
- data/modules/mu/config/log.rb +47 -0
- data/modules/mu/config/log.yml +6 -0
- data/modules/mu/config/msg_queue.rb +47 -0
- data/modules/mu/config/msg_queue.yml +9 -0
- data/modules/mu/config/notification.rb +44 -0
- data/modules/mu/config/project.rb +71 -0
- data/modules/mu/config/role.rb +102 -0
- data/modules/mu/config/search_domain.rb +61 -0
- data/modules/mu/config/search_domain.yml +25 -0
- data/modules/mu/config/server.rb +587 -0
- data/modules/mu/config/server.yml +8 -0
- data/modules/mu/config/server_pool.rb +216 -0
- data/modules/mu/config/server_pool.yml +71 -0
- data/modules/mu/config/storage_pool.rb +145 -0
- data/modules/mu/config/user.rb +78 -0
- data/modules/mu/config/vpc.rb +743 -0
- data/modules/mu/config/vpc.yml +6 -0
- data/modules/mu/config.rb +2000 -0
- data/modules/mu/defaults/README.md +2 -0
- data/modules/mu/defaults/amazon_images.yaml +121 -0
- data/modules/mu/defaults/google_images.yaml +16 -0
- data/modules/mu/deploy.rb +686 -0
- data/modules/mu/groomer.rb +123 -0
- data/modules/mu/groomers/README.md +58 -0
- data/modules/mu/groomers/chef.rb +1024 -0
- data/modules/mu/kittens.rb +11319 -0
- data/modules/mu/logger.rb +208 -0
- data/modules/mu/master/README.md +27 -0
- data/modules/mu/master/chef.rb +471 -0
- data/modules/mu/master/ldap.rb +1005 -0
- data/modules/mu/master.rb +415 -0
- data/modules/mu/mommacat.rb +2703 -0
- data/modules/mu-load-config.rb +1 -0
- data/modules/mu.rb +724 -0
- data/modules/scratchpad.erb +1 -0
- data/modules/tests/super_complex_bok.yml +41 -0
- data/modules/tests/super_simple_bok.yml +40 -0
- data/mu.gemspec +62 -0
- data/roles/demo-dbservice-configure.json +19 -0
- data/roles/demo-portal-configure.json +19 -0
- data/roles/mu-master-jenkins.json +24 -0
- data/roles/mu-master-nagios-only.json +13 -0
- data/roles/mu-master.json +12 -0
- data/roles/mu-node.json +19 -0
- data/roles/mu-splunk-server.json +13 -0
- data/roles/mu-splunk.json +13 -0
- data/test/clean_up.py +25 -0
- data/test/demo-test-profile/README.md +3 -0
- data/test/demo-test-profile/controls/flask.rb +84 -0
- data/test/demo-test-profile/inspec.lock +7 -0
- data/test/demo-test-profile/inspec.yml +11 -0
- data/test/etco-test-profile/README.md +3 -0
- data/test/etco-test-profile/controls/all-in-one.rb +182 -0
- data/test/etco-test-profile/inspec.lock +7 -0
- data/test/etco-test-profile/inspec.yml +11 -0
- data/test/exec_inspec.py +246 -0
- data/test/exec_mu_install.py +241 -0
- data/test/exec_retry.py +44 -0
- data/test/mu-master-test/README.md +3 -0
- data/test/mu-master-test/controls/all_in_one.rb +557 -0
- data/test/mu-master-test/inspec.lock +3 -0
- data/test/mu-master-test/inspec.yml +11 -0
- data/test/mu-tools-test/README.md +3 -0
- data/test/mu-tools-test/controls/base.rb +265 -0
- data/test/mu-tools-test/inspec.lock +3 -0
- data/test/mu-tools-test/inspec.yml +8 -0
- data/test/simple-server-php-test/README.md +3 -0
- data/test/simple-server-php-test/controls/apachephp.rb +25 -0
- data/test/simple-server-php-test/controls/example.rb +19 -0
- data/test/simple-server-php-test/inspec.lock +7 -0
- data/test/simple-server-php-test/inspec.yml +12 -0
- data/test/simple-server-rails-test/README.md +3 -0
- data/test/simple-server-rails-test/controls/rails.rb +188 -0
- data/test/simple-server-rails-test/inspec.lock +7 -0
- data/test/simple-server-rails-test/inspec.yml +11 -0
- data/test/simple-windows-test/README.md +3 -0
- data/test/simple-windows-test/controls/windows.rb +20 -0
- data/test/simple-windows-test/inspec.lock +7 -0
- data/test/simple-windows-test/inspec.yml +11 -0
- data/test/smoke_test.rb +75 -0
- data/test/wordpress-test/README.md +3 -0
- data/test/wordpress-test/controls/wordpress.rb +97 -0
- data/test/wordpress-test/inspec.lock +7 -0
- data/test/wordpress-test/inspec.yml +11 -0
- metadata +979 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#%PAM-1.0
|
|
2
|
+
auth required pam_env.so
|
|
3
|
+
auth sufficient pam_unix.so try_first_pass
|
|
4
|
+
auth requisite pam_succeed_if.so uid >= 500 quiet
|
|
5
|
+
auth sufficient pam_krb5.so use_first_pass
|
|
6
|
+
auth sufficient pam_winbind.so use_first_pass
|
|
7
|
+
auth required pam_deny.so
|
|
8
|
+
auth required pam_faillock.so preauth audit silent deny=5 unlock_time=900
|
|
9
|
+
auth [success=1 default=bad] pam_unix.so
|
|
10
|
+
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=900
|
|
11
|
+
auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=900
|
|
12
|
+
|
|
13
|
+
account required pam_access.so
|
|
14
|
+
account required pam_unix.so broken_shadow
|
|
15
|
+
account sufficient pam_localuser.so
|
|
16
|
+
account sufficient pam_succeed_if.so uid < 500 quiet
|
|
17
|
+
account [default=bad success=ok user_unknown=ignore] pam_krb5.so
|
|
18
|
+
account [default=bad success=ok user_unknown=ignore] pam_winbind.so
|
|
19
|
+
account required pam_permit.so
|
|
20
|
+
|
|
21
|
+
password requisite pam_cracklib.so try_first_pass retry=3 minlen=14 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1
|
|
22
|
+
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
|
|
23
|
+
password sufficient pam_krb5.so use_authtok
|
|
24
|
+
password sufficient pam_winbind.so use_authtok
|
|
25
|
+
password required pam_deny.so
|
|
26
|
+
|
|
27
|
+
session optional pam_keyinit.so revoke
|
|
28
|
+
session required pam_limits.so
|
|
29
|
+
session optional pam_oddjob_mkhomedir.so umask=0077
|
|
30
|
+
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
|
|
31
|
+
session required pam_unix.so
|
|
32
|
+
session optional pam_krb5.so
|
|
Binary file
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
module sshd_pol 1.0;
|
|
3
|
+
|
|
4
|
+
require {
|
|
5
|
+
type sshd_t;
|
|
6
|
+
type file_t;
|
|
7
|
+
type default_t;
|
|
8
|
+
type chroot_user_t;
|
|
9
|
+
type fusefs_t;
|
|
10
|
+
class sock_file write;
|
|
11
|
+
class lnk_file read;
|
|
12
|
+
class dir { search getattr };
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
#============= chroot_user_t ==============
|
|
16
|
+
|
|
17
|
+
#!!!! This avc is allowed in the current policy
|
|
18
|
+
allow chroot_user_t file_t:dir { getattr search };
|
|
19
|
+
|
|
20
|
+
#!!!! This avc is allowed in the current policy
|
|
21
|
+
allow chroot_user_t file_t:lnk_file read;
|
|
22
|
+
|
|
23
|
+
#!!!! This avc is allowed in the current policy
|
|
24
|
+
allow chroot_user_t fusefs_t:dir { search getattr };
|
|
25
|
+
|
|
26
|
+
#============= sshd_t ==============
|
|
27
|
+
allow sshd_t default_t:sock_file write;
|
|
28
|
+
allow sshd_t file_t:dir search;
|
|
29
|
+
allow sshd_t file_t:lnk_file read;
|
|
30
|
+
|
|
31
|
+
#!!!! This avc can be allowed using the boolean 'use_fusefs_home_dirs'
|
|
32
|
+
allow sshd_t fusefs_t:dir search;
|
|
Binary file
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#%PAM-1.0
|
|
2
|
+
|
|
3
|
+
auth required pam_env.so
|
|
4
|
+
auth sufficient pam_unix.so try_first_pass
|
|
5
|
+
auth requisite pam_succeed_if.so uid >= 500 quiet
|
|
6
|
+
auth sufficient pam_krb5.so use_first_pass
|
|
7
|
+
auth sufficient pam_winbind.so use_first_pass
|
|
8
|
+
auth required pam_deny.so
|
|
9
|
+
auth required pam_faillock.so preauth audit silent deny=5 unlock_time=900
|
|
10
|
+
auth [success=1 default=bad] pam_unix.so
|
|
11
|
+
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=900
|
|
12
|
+
auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=900
|
|
13
|
+
|
|
14
|
+
account required pam_access.so
|
|
15
|
+
account required pam_unix.so broken_shadow
|
|
16
|
+
account sufficient pam_localuser.so
|
|
17
|
+
account sufficient pam_succeed_if.so uid < 500 quiet
|
|
18
|
+
account [default=bad success=ok user_unknown=ignore] pam_krb5.so
|
|
19
|
+
account [default=bad success=ok user_unknown=ignore] pam_winbind.so
|
|
20
|
+
account required pam_permit.so
|
|
21
|
+
|
|
22
|
+
password requisite pam_cracklib.so try_first_pass retry=3 minlen=14 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1
|
|
23
|
+
password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok
|
|
24
|
+
password sufficient pam_krb5.so use_authtok
|
|
25
|
+
password sufficient pam_winbind.so use_authtok
|
|
26
|
+
password required pam_deny.so
|
|
27
|
+
password sufficient pam_unix.so remember=5
|
|
28
|
+
|
|
29
|
+
session optional pam_keyinit.so revoke
|
|
30
|
+
session required pam_limits.so
|
|
31
|
+
session optional pam_oddjob_mkhomedir.so umask=0077
|
|
32
|
+
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
|
|
33
|
+
session required pam_unix.so
|
|
34
|
+
session optional pam_krb5.so
|
|
Binary file
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
module winbindpol 1.0;
|
|
3
|
+
|
|
4
|
+
require {
|
|
5
|
+
type postfix_pickup_t;
|
|
6
|
+
type sshd_t;
|
|
7
|
+
type default_t;
|
|
8
|
+
type winbind_t;
|
|
9
|
+
type postfix_cleanup_t;
|
|
10
|
+
type postfix_master_t;
|
|
11
|
+
class sock_file { getattr unlink create };
|
|
12
|
+
class dir { write remove_name add_name };
|
|
13
|
+
class file { write read lock create unlink open };
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
#============= postfix_cleanup_t ==============
|
|
17
|
+
allow postfix_cleanup_t default_t:sock_file getattr;
|
|
18
|
+
|
|
19
|
+
#============= postfix_master_t ==============
|
|
20
|
+
allow postfix_master_t default_t:sock_file getattr;
|
|
21
|
+
|
|
22
|
+
#============= postfix_pickup_t ==============
|
|
23
|
+
allow postfix_pickup_t default_t:sock_file getattr;
|
|
24
|
+
|
|
25
|
+
#============= sshd_t ==============
|
|
26
|
+
allow sshd_t default_t:sock_file getattr;
|
|
27
|
+
|
|
28
|
+
#============= winbind_t ==============
|
|
29
|
+
#!!!! The source type 'winbind_t' can write to a 'dir' of the following types:
|
|
30
|
+
# user_home_t, var_run_t, var_log_t, samba_etc_t, samba_log_t, samba_var_t, ctdbd_var_lib_t, pcscd_var_run_t, smbd_var_run_t, user_home_dir_t, winbind_var_run_t, tmp_t, var_t, user_tmp_t, auth_cache_t, cluster_var_lib_t, cluster_var_run_t, root_t, cluster_conf_t
|
|
31
|
+
|
|
32
|
+
allow winbind_t default_t:dir { write remove_name add_name };
|
|
33
|
+
#!!!! The source type 'winbind_t' can write to a 'file' of the following types:
|
|
34
|
+
# winbind_log_t, user_home_t, samba_secrets_t, samba_log_t, samba_var_t, ctdbd_var_lib_t, pcscd_var_run_t, smbd_var_run_t, winbind_var_run_t, user_tmp_t, auth_cache_t, cluster_var_lib_t, cluster_var_run_t, root_t, cluster_conf_t
|
|
35
|
+
|
|
36
|
+
allow winbind_t default_t:file { write read lock create unlink open };
|
|
37
|
+
allow winbind_t default_t:sock_file { create unlink };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
require 'chef/mixin/shell_out'
|
|
2
|
+
include Chef::Mixin::PowershellOut
|
|
3
|
+
include Chef::Mixin::ShellOut
|
|
4
|
+
|
|
5
|
+
module Activedirectory
|
|
6
|
+
module Config
|
|
7
|
+
def inspect_exit_status(output, description)
|
|
8
|
+
Chef::Application.fatal!("Failed to #{description}: #{output.stderr}") unless output.exitstatus == 0
|
|
9
|
+
Chef::Log.info(description)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def admin_creds
|
|
13
|
+
"(New-Object System.Management.Automation.PSCredential('#{new_resource.netbios_name}\\#{new_resource.domain_admin_user}', (ConvertTo-SecureString '#{new_resource.domain_admin_password}' -AsPlainText -Force)))"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def set_computer_name(creds)
|
|
17
|
+
# Theoretically this should have been done for us already, but let's cover the oddball cases.
|
|
18
|
+
Chef::Log.info("node_hostname: #{node['hostname'].downcase}, computer_name: #{new_resource.computer_name.downcase}")
|
|
19
|
+
if node['hostname'].downcase != new_resource.computer_name.downcase
|
|
20
|
+
cmd = powershell_out("Rename-Computer -NewName '#{new_resource.computer_name}' -Force -PassThru -Restart -DomainCredential #{creds}")
|
|
21
|
+
execute "kill ssh for reboot" do
|
|
22
|
+
command "Taskkill /im sshd.exe /f /t"
|
|
23
|
+
returns [0, 128]
|
|
24
|
+
action :nothing
|
|
25
|
+
end
|
|
26
|
+
reboot "Renaming computer to #{new_resource.computer_name}" do
|
|
27
|
+
action :reboot_now
|
|
28
|
+
reason "Renaming computer to #{new_resource.computer_name}"
|
|
29
|
+
notifies :run, "execute[kill ssh for reboot]", :immediately
|
|
30
|
+
end
|
|
31
|
+
kill_ssh
|
|
32
|
+
Chef::Application.fatal!("Failed to rename computer from #{node['hostname']} to #{new_resource.computer_name}: #{cmd.stdout}\n#{cmd.stderr}") if cmd.exitstatus != 0
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def elevate_remote_access
|
|
37
|
+
unless uac_remote_restrictions_enabled?
|
|
38
|
+
cmd = powershell_out("New-ItemProperty -Path HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System -Name 'LocalAccountTokenFilterPolicy' -PropertyType DWord -Force -Value 1")
|
|
39
|
+
Chef::Log.info("Allowing remote access with UAC")
|
|
40
|
+
# inspect_exit_status(cmd, "UAC remote access")
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def network_interface_code
|
|
45
|
+
dc_ips = nil
|
|
46
|
+
dc_ips = new_resource.existing_dc_ips.join(",") unless new_resource.existing_dc_ips.empty?
|
|
47
|
+
code =<<-EOH
|
|
48
|
+
Stop-Process -ProcessName sshd -force -ErrorAction SilentlyContinue
|
|
49
|
+
$netipconfig = Get-NetIPConfiguration
|
|
50
|
+
$netadapter = Get-NetAdapter
|
|
51
|
+
$netipaddress = $netadapter | Get-NetIPAddress -AddressFamily IPv4
|
|
52
|
+
$netadapter | Set-NetIPInterface -Dhcp Disabled
|
|
53
|
+
$netadapter | New-NetIPAddress -IPAddress #{node['ipaddress']} -PrefixLength $netipaddress.PrefixLength -DefaultGateway $netipconfig.IPv4DefaultGateway.NextHop
|
|
54
|
+
$netadapter | Set-DnsClientServerAddress -PassThru -ServerAddresses #{dc_ips}
|
|
55
|
+
EOH
|
|
56
|
+
return code
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def configure_network_interface
|
|
60
|
+
dc_ips = nil
|
|
61
|
+
dc_ips = new_resource.existing_dc_ips.join(",") unless new_resource.existing_dc_ips.empty?
|
|
62
|
+
|
|
63
|
+
if dhcp_enabled?
|
|
64
|
+
code =<<-EOH
|
|
65
|
+
#{network_interface_code}
|
|
66
|
+
Start-Service sshd -ErrorAction SilentlyContinue
|
|
67
|
+
EOH
|
|
68
|
+
cmd = powershell_out(code)
|
|
69
|
+
Chef::Log.info("Set network interface to use static address")
|
|
70
|
+
# inspect_exit_status(cmd, "set network interface")
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
unless dc_ips.nil?
|
|
74
|
+
cmd = powershell_out("Get-NetAdapter | Set-DnsClientServerAddress -PassThru -ServerAddresses #{dc_ips}")
|
|
75
|
+
Chef::Log.info("set DNS addresses to #{new_resource.existing_dc_ips.join(",")}")
|
|
76
|
+
# inspect_exit_status(cmd, "set DNS addresses to #{new_resource.existing_dc_ips.join(",")}")
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def install_ad_features
|
|
81
|
+
# Can't inspect exist code. Windows is reporting wrong exit code
|
|
82
|
+
powershell_out("Install-WindowsFeature AD-Domain-Services, rsat-adds, FS-DFS-Replication, RSAT-DFS-Mgmt-Con -IncludeAllSubFeature")
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def set_replication_static_ports
|
|
86
|
+
# Can't inspect exist code of any of those. exit code 0 doesn't seem to mean what it should mean on Windows
|
|
87
|
+
powershell_out("New-ItemProperty -Path HKLM:\\SYSTEM\\CurrentControlSet\\Services\\NTDS\\Parameters -Name 'TCP/IP Port' -PropertyType DWord -Force -Value #{new_resource.ntds_static_port}") unless replication_tcp_port_set?
|
|
88
|
+
powershell_out("New-ItemProperty -Path HKLM:\\SYSTEM\\CurrentControlSet\\Services\\NTFRS\\Parameters -Name 'RPC TCP/IP Port Assignment' -PropertyType DWord -Force -Value #{new_resource.ntfrs_static_port}") unless replication_rpc_port_set?
|
|
89
|
+
powershell_out("New-ItemProperty -Path HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Netlogon\\Parameters -Name 'DCTcpipPort' -PropertyType DWord -Force -Value #{new_resource.netlogon_static_port}") unless netlogon_port_set?
|
|
90
|
+
powershell_out("Set-DfsrServiceConfiguration -RPCPort #{new_resource.dfsr_static_port}") unless dfsr_rpc_port_set?
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Workaround for a really crappy issue with cygwin/ssh and windows where we need to end all ssh process,
|
|
94
|
+
# or Mu's SSH session / chef client run won't disconnect even though the client chef run has finished or the SSH session has closed.
|
|
95
|
+
def kill_ssh
|
|
96
|
+
execute "Taskkill /im sshd.exe /f /t" do
|
|
97
|
+
returns [0, 128]
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
Chef::Recipe.send(:include, Activedirectory::Config)
|
|
105
|
+
Chef::Resource.send(:include, Activedirectory::Config)
|
|
106
|
+
Chef::Provider.send(:include, Activedirectory::Config)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
require 'chef/mixin/shell_out'
|
|
2
|
+
include Chef::Mixin::PowershellOut
|
|
3
|
+
include Chef::Mixin::ShellOut
|
|
4
|
+
|
|
5
|
+
module Activedirectory
|
|
6
|
+
module Helper
|
|
7
|
+
def elversion
|
|
8
|
+
return 6 if node['platform_version'].to_i == 2013
|
|
9
|
+
return 6 if node['platform_version'].to_i == 2014
|
|
10
|
+
return 6 if node['platform_version'].to_i == 2015
|
|
11
|
+
return 6 if node['platform_version'].to_i == 2016
|
|
12
|
+
node['platform_version'].to_i
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def in_domain?
|
|
16
|
+
cmd = powershell_out("((Get-WmiObject win32_computersystem).partofdomain -eq $true)")
|
|
17
|
+
return cmd.stdout.match(/True/)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def is_domain_controller?(hostname)
|
|
21
|
+
# cmd = powershell_out("(Get-ADDomainController).name -eq '#{new_resource.computer_name}'")
|
|
22
|
+
cmd = powershell_out("(Get-ADDomainController).name -eq '#{hostname}'")
|
|
23
|
+
return cmd.stdout.match(/True/)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def dhcp_enabled?
|
|
27
|
+
cmd = powershell_out("(Get-NetIPInterface -InterfaceAlias Ethernet* -AddressFamily IPv4).Dhcp -eq 'Enabled'")
|
|
28
|
+
return cmd.stdout.match(/True/)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def domain_exists?
|
|
32
|
+
cmd = powershell_out("(Get-ADDomain).DNSRoot -eq '#{new_resource.dns_name}'")
|
|
33
|
+
return cmd.stdout.match(/True/)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def replication_rpc_port_set?
|
|
37
|
+
cmd = powershell_out("(Get-ItemProperty HKLM:\\SYSTEM\\CurrentControlSet\\Services\\NTFRS\\Parameters 'RPC TCP/IP Port Assignment').'RPC TCP/IP Port Assignment' -eq \"#{new_resource.ntfrs_static_port}\"")
|
|
38
|
+
return cmd.stdout.match(/True/)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def replication_tcp_port_set?
|
|
42
|
+
cmd = powershell_out("(Get-ItemProperty HKLM:\\SYSTEM\\CurrentControlSet\\Services\\NTDS\\Parameters 'TCP/IP Port').'TCP/IP Port' -eq \"#{new_resource.ntds_static_port}\"")
|
|
43
|
+
return cmd.stdout.match(/True/)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def dfsr_rpc_port_set?
|
|
47
|
+
cmd = powershell_out("(Get-DfsrServiceConfiguration).RPCPort -eq #{new_resource.dfsr_static_port}")
|
|
48
|
+
return cmd.stdout.match(/True/)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def netlogon_port_set?
|
|
52
|
+
cmd = powershell_out("(Get-ItemProperty HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Netlogon\\Parameters 'DCTcpipPort').'DCTcpipPort' -eq \"#{new_resource.netlogon_static_port}\"")
|
|
53
|
+
return cmd.stdout.match(/True/)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def domain_user_exist?(user)
|
|
57
|
+
cmd = powershell_out("(Get-ADUser -Filter {Name -eq '#{user}'}).Name -eq '#{user}'")
|
|
58
|
+
return cmd.stdout.match(/True/)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def uac_remote_restrictions_enabled?
|
|
62
|
+
cmd = powershell_out("(Get-ItemProperty HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System 'LocalAccountTokenFilterPolicy').'LocalAccountTokenFilterPolicy' -eq 1")
|
|
63
|
+
return cmd.stdout.match(/True/)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def default_site_name_set?
|
|
67
|
+
cmd = powershell_out("(Get-ADReplicationSite).name -eq '#{new_resource.site_name}'")
|
|
68
|
+
return cmd.stdout.match(/True/)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def gpo_exist?(gpo_name)
|
|
72
|
+
cmd = powershell_out("(Get-GPO -Name #{gpo_name}).DisplayName -eq '#{gpo_name}'")
|
|
73
|
+
return cmd.stdout.match(/True/)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def is_schemamaster?(domain_name, hostname)
|
|
77
|
+
cmd = powershell_out("(Get-ADForest #{domain_name}).SchemaMaster -eq '#{hostname.downcase}.#{domain_name}'")
|
|
78
|
+
return cmd.stdout.match(/True/)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
Chef::Node.send(:include, Activedirectory::Helper)
|
|
84
|
+
Chef::Recipe.send(:include, Activedirectory::Helper)
|
|
85
|
+
Chef::Resource.send(:include, Activedirectory::Helper)
|
|
86
|
+
Chef::Provider.send(:include, Activedirectory::Helper)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name 'mu-activedirectory'
|
|
2
|
+
maintainer 'eGlobalTech,'
|
|
3
|
+
maintainer_email 'ecap-developers@googlegroups.com'
|
|
4
|
+
license 'BSD-3-Clause'
|
|
5
|
+
description 'Installs/Configures mu-activedirectory'
|
|
6
|
+
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
|
7
|
+
source_url 'https://github.com/cloudamatic/mu'
|
|
8
|
+
issues_url 'https://github.com/cloudamatic/mu/issues'
|
|
9
|
+
chef_version '>= 14.0' if respond_to?(:chef_version)
|
|
10
|
+
version '0.2.0'
|
|
11
|
+
depends "windows", '~> 5.1.1'
|
|
12
|
+
depends "chef-vault", '~> 3.1.1'
|
|
13
|
+
depends "yum-epel", '~> 3.2.0'
|
|
14
|
+
|
|
15
|
+
%w( amazon centos redhat windows ).each do |os|
|
|
16
|
+
supports os
|
|
17
|
+
end
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Cookbook Name:: mu-activedirectory
|
|
3
|
+
# Provider:: domain
|
|
4
|
+
#
|
|
5
|
+
# Copyright 2015, eGlobalTech,
|
|
6
|
+
#
|
|
7
|
+
# All rights reserved - Do Not Redistribute
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
include Chef::Mixin::PowershellOut
|
|
11
|
+
|
|
12
|
+
def whyrun_supported?
|
|
13
|
+
true
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
action :create do
|
|
17
|
+
case node['platform']
|
|
18
|
+
when "windows"
|
|
19
|
+
install_ad_features
|
|
20
|
+
elevate_remote_access
|
|
21
|
+
set_computer_name(admin_creds)
|
|
22
|
+
create_domain
|
|
23
|
+
configure_network_interface
|
|
24
|
+
configure_domain
|
|
25
|
+
when platform_family?('rhel')
|
|
26
|
+
# To do: Do Active Directory on Linux
|
|
27
|
+
else
|
|
28
|
+
Chef::Log.info("Unsupported platform #{node['platform']}")
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
action :delete do
|
|
33
|
+
case node['platform']
|
|
34
|
+
when "windows"
|
|
35
|
+
delete_domain
|
|
36
|
+
when platform_family?('rhel')
|
|
37
|
+
# To do: Do Active Directory on Linux
|
|
38
|
+
else
|
|
39
|
+
Chef::Log.info("Unsupported platform #{node['platform']}")
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# def load_current_resource
|
|
44
|
+
# @current_resource = @new_resource.dup
|
|
45
|
+
# end
|
|
46
|
+
|
|
47
|
+
def create_domain_admin_user
|
|
48
|
+
unless domain_user_exist?(new_resource.domain_admin_user)
|
|
49
|
+
code =<<-EOH
|
|
50
|
+
New-ADUser -Name #{new_resource.domain_admin_user} -UserPrincipalName #{new_resource.domain_admin_user}@#{new_resource.dns_name} -AccountPassword (ConvertTo-SecureString -AsPlainText '#{new_resource.domain_admin_password}' -force) -Enabled $true -PasswordNeverExpires $true
|
|
51
|
+
Add-ADGroupMember 'Domain Admins' -Members #{new_resource.domain_admin_user}
|
|
52
|
+
EOH
|
|
53
|
+
cmd = powershell_out(code)
|
|
54
|
+
Chef::Log.info("Create Domain Admin User #{new_resource.domain_admin_user}")
|
|
55
|
+
# inspect_exit_status(cmd, "Create Domain Admin User #{new_resource.domain_admin_user}")
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
#This will restart the OS. The OS needs to be restated after creating the domain
|
|
60
|
+
# Workaround for a really crappy issue with cygwin/ssh and windows where we need to end all ssh process,
|
|
61
|
+
# or Mu's SSH session / chef client run won't disconnect even though the client chef run has finished or the SSH session has closed.
|
|
62
|
+
# Running configure_network_interface before creating a domain, and re-running chef-client will cause DNS name resolution to fail if the domain hasn't been created,
|
|
63
|
+
# which is why we add the configure_network_interface code to the domain creation execution itself.
|
|
64
|
+
def create_domain
|
|
65
|
+
unless domain_exists?
|
|
66
|
+
require 'chef/win32/version'
|
|
67
|
+
version = Chef::ReservedNames::Win32::Version.new
|
|
68
|
+
|
|
69
|
+
Chef::Log.info("Configuring network interface settings and creating domain")
|
|
70
|
+
if version.windows_server_2012?
|
|
71
|
+
code =<<-EOH
|
|
72
|
+
#{network_interface_code}
|
|
73
|
+
$DCPromoFile = @"
|
|
74
|
+
[DCINSTALL]
|
|
75
|
+
InstallDNS=yes
|
|
76
|
+
NewDomain=forest
|
|
77
|
+
NewDomainDNSName=#{new_resource.dns_name}
|
|
78
|
+
DomainNetBiosName=#{new_resource.netbios_name}
|
|
79
|
+
SiteName=#{new_resource.site_name}
|
|
80
|
+
ReplicaorNewDomain=domain
|
|
81
|
+
ForestLevel=5
|
|
82
|
+
DomainLevel=5
|
|
83
|
+
ConfirmGC=Yes
|
|
84
|
+
SafeModeAdminPassword="#{new_resource.restore_mode_password}"
|
|
85
|
+
RebootonCompletion=Yes
|
|
86
|
+
"@
|
|
87
|
+
$DCPromoFile | out-file c:/dcpromoanswerfile.txt -Force
|
|
88
|
+
dcpromo.exe /unattend:c:/dcpromoanswerfile.txt
|
|
89
|
+
EOH
|
|
90
|
+
elsif version.windows_server_2012_r2?
|
|
91
|
+
code =<<-EOH
|
|
92
|
+
#{network_interface_code}
|
|
93
|
+
Install-ADDSForest -DomainName #{new_resource.dns_name} -SafeModeAdministratorPassword (convertto-securestring '#{new_resource.restore_mode_password}' -asplaintext -force) -DomainMode Win2012R2 -DomainNetbiosName #{new_resource.netbios_name} -ForestMode Win2012R2 -Confirm:$false -Force
|
|
94
|
+
Stop-Process -ProcessName sshd -force -ErrorAction SilentlyContinue
|
|
95
|
+
EOH
|
|
96
|
+
# cmd = powershell_out("Install-ADDSForest -DomainName #{new_resource.dns_name} -SafeModeAdministratorPassword (convertto-securestring '#{new_resource.restore_mode_password}' -asplaintext -force) -DomainMode Win2012R2 -DomainNetbiosName #{new_resource.netbios_name} -ForestMode Win2012R2 -Confirm:$false -Force")
|
|
97
|
+
end
|
|
98
|
+
Chef::Log.info("Creating Active Directory Domain #{new_resource.dns_name}")
|
|
99
|
+
cmd = powershell_out(code)
|
|
100
|
+
kill_ssh
|
|
101
|
+
Chef::Application.fatal!("Failed to create Active Directory Domain #{new_resource.dns_name}") if cmd.exitstatus != 0
|
|
102
|
+
reboot "Active Directory Domain #{new_resource.dns_name} created" do
|
|
103
|
+
action :reboot_now
|
|
104
|
+
reason "Active Directory Domain #{new_resource.dns_name} created"
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def rename_default_site
|
|
110
|
+
unless default_site_name_set?
|
|
111
|
+
cmd = powershell_out("Get-ADObject -Credential #{admin_creds} -SearchBase (Get-ADRootDSE).ConfigurationNamingContext -filter {Name -eq 'Default-First-Site-Name'} | Rename-ADObject -Credential #{admin_creds} -NewName #{new_resource.site_name}")
|
|
112
|
+
Chef::Log.info("Renamed default site to #{new_resource.site_name}")
|
|
113
|
+
# inspect_exit_status(cmd, "Renamed default site to #{new_resource.site_name}")
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def configure_replication
|
|
118
|
+
new_resource.sites.each { |site|
|
|
119
|
+
if site[:name] != new_resource.site_name
|
|
120
|
+
powershell_script "Creating AD ReplicationSite #{site[:name]}" do
|
|
121
|
+
guard_interpreter :powershell_script
|
|
122
|
+
code "New-ADReplicationSite #{site[:name]} -Credential #{admin_creds}"
|
|
123
|
+
not_if "(Get-ADObject -Credential #{admin_creds} -SearchBase (Get-ADRootDSE).ConfigurationNamingContext -filter {Name -eq '#{site[:name]}'}).name -eq '#{site[:name]}'"
|
|
124
|
+
sensitive true
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
powershell_script "Configure AD Replication between AD sites and" do
|
|
128
|
+
guard_interpreter :powershell_script
|
|
129
|
+
code "Get-ADReplicationSiteLink -Credential #{admin_creds} -Filter * | Set-ADReplicationSiteLink -Credential #{admin_creds} -SitesIncluded @{add='#{site[:name]}'} -ReplicationFrequencyInMinutes 15"
|
|
130
|
+
sensitive true
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
powershell_script "Create AD Replication subnet #{site[:ip_block]} for site #{site[:name]}" do
|
|
135
|
+
guard_interpreter :powershell_script
|
|
136
|
+
code "New-ADReplicationSubnet -Credential #{admin_creds} -Name #{site[:ip_block]} -Site #{site[:name]}"
|
|
137
|
+
not_if "(Get-ADReplicationSubnet -Credential #{admin_creds} -Identity #{site[:ip_block]}).name -eq '#{site[:ip_block]}'"
|
|
138
|
+
sensitive true
|
|
139
|
+
end
|
|
140
|
+
}
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
def configure_domain
|
|
144
|
+
# Move these to somewhere that makes sense
|
|
145
|
+
powershell_out("Set-Service NTDS -StartupType Automatic")
|
|
146
|
+
powershell_out("Set-Service ADWS -StartupType Automatic")
|
|
147
|
+
|
|
148
|
+
create_domain_admin_user
|
|
149
|
+
rename_default_site
|
|
150
|
+
configure_replication
|
|
151
|
+
set_replication_static_ports
|
|
152
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Cookbook Name:: mu-activedirectory
|
|
3
|
+
# Provider:: domain_controller
|
|
4
|
+
#
|
|
5
|
+
# Copyright 2015, eGlobalTech,
|
|
6
|
+
#
|
|
7
|
+
# All rights reserved - Do Not Redistribute
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
include Chef::Mixin::PowershellOut
|
|
11
|
+
require 'chef/mixin/shell_out'
|
|
12
|
+
include Chef::Mixin::ShellOut
|
|
13
|
+
|
|
14
|
+
def whyrun_supported?
|
|
15
|
+
true
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
action :add do
|
|
19
|
+
case node['platform']
|
|
20
|
+
when "windows"
|
|
21
|
+
install_ad_features
|
|
22
|
+
elevate_remote_access
|
|
23
|
+
join_domain
|
|
24
|
+
promote
|
|
25
|
+
configure_network_interface
|
|
26
|
+
set_replication_static_ports
|
|
27
|
+
set_computer_name(admin_creds)
|
|
28
|
+
when platform_family?('rhel')
|
|
29
|
+
# To do: Do Active Directory on Linux
|
|
30
|
+
else
|
|
31
|
+
Chef::Log.info("Unsupported platform #{node['platform']}")
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
action :remove do
|
|
36
|
+
case node['platform']
|
|
37
|
+
when "windows"
|
|
38
|
+
demote
|
|
39
|
+
when platform_family?('rhel')
|
|
40
|
+
# To do: Do Active Directory on Linux
|
|
41
|
+
else
|
|
42
|
+
Chef::Log.info("Unsupported platform #{node['platform']}")
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# def load_current_resource
|
|
47
|
+
# @current_resource = @new_resource.dup
|
|
48
|
+
# end
|
|
49
|
+
|
|
50
|
+
def promote
|
|
51
|
+
unless is_domain_controller?(new_resource.computer_name)
|
|
52
|
+
Chef::Log.info("Promoting #{new_resource.computer_name} to domain controller in #{new_resource.dns_name} domain")
|
|
53
|
+
cmd = powershell_out("Stop-Process -ProcessName sshd -force -ErrorAction SilentlyContinue; Install-ADDSDomainController -InstallDns -DomainName #{new_resource.dns_name} -Credential #{admin_creds} -SafeModeAdministratorPassword (convertto-securestring '#{new_resource.restore_mode_password}' -asplaintext -force) -Force -Confirm:$false; Restart-Computer -Force")
|
|
54
|
+
kill_ssh
|
|
55
|
+
Chef::Application.fatal!("Failed to promote #{new_resource.computer_name} to Domain Controller in #{new_resource.dns_name} domain") unless cmd.exitstatus == 0
|
|
56
|
+
Chef::Application.fatal!("Promoted #{new_resource.computer_name} to Domain Controller in #{new_resource.dns_name} domain. Will have to run chef again")
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def demote
|
|
61
|
+
if is_domain_controller?(new_resource.computer_name)
|
|
62
|
+
Chef::Log.info("Demoting domain controller #{new_resource.computer_name} in #{new_resource.dns_name} domain")
|
|
63
|
+
cmd = powershell_out("Stop-Process -ProcessName sshd -force -ErrorAction SilentlyContinue; Uninstall-WindowsFeature DNS; Uninstall-ADDSDomainController -Credential #{admin_creds} -LocalAdministratorPassword (convertto-securestring '#{new_resource.domain_admin_password}' -asplaintext -force) -Force -Confirm:$false; Restart-Computer -Force")
|
|
64
|
+
kill_ssh
|
|
65
|
+
Chef::Application.fatal!("Failed to demote Domain Controller #{new_resource.computer_name} in #{new_resource.dns_name} domain") unless cmd.exitstatus == 0
|
|
66
|
+
Chef::Application.fatal!("Demoted Domain Controller #{new_resource.computer_name} in #{new_resource.dns_name} domain. Will have to run chef again")
|
|
67
|
+
end
|
|
68
|
+
powershell_out("Uninstall-WindowsFeature AD-Domain-Services, rsat-adds, FS-DFS-Replication, RSAT-DFS-Mgmt-Con -IncludeManagementTools")
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def join_domain
|
|
72
|
+
unless in_domain?
|
|
73
|
+
# Workaround for a really crappy issue with cygwin/ssh and windows where we need to end all ssh process,
|
|
74
|
+
# or Mu's SSH session / chef client run won't disconnect even though the client chef run has finished or the SSH session has closed.
|
|
75
|
+
# Running configure_network_interface before joining a domain, and re-running chef-client will cause DNS name resolution to fail if the node wasn't successfully added to the domain,
|
|
76
|
+
# which is why we add the configure_network_interface code to join_domain directly.
|
|
77
|
+
code =<<-EOH
|
|
78
|
+
#{network_interface_code}
|
|
79
|
+
Add-Computer -DomainName #{new_resource.dns_name} -Credential #{admin_creds} -Restart -PassThru
|
|
80
|
+
Restart-Computer -Force
|
|
81
|
+
EOH
|
|
82
|
+
Chef::Log.info("Joining #{new_resource.computer_name} node to #{new_resource.dns_name} domain")
|
|
83
|
+
cmd = powershell_out(code)
|
|
84
|
+
# cmd = powershell_out("Add-Computer -DomainName #{new_resource.dns_name} -Credential #{admin_creds} -Restart -PassThru")
|
|
85
|
+
kill_ssh
|
|
86
|
+
Chef::Application.fatal!("Failed to join #{new_resource.computer_name} to #{new_resource.dns_name} domain") unless cmd.exitstatus == 0
|
|
87
|
+
Chef::Application.fatal!("Joined #{new_resource.computer_name} to #{new_resource.dns_name} domain. Will have to run chef again")
|
|
88
|
+
end
|
|
89
|
+
end
|