Skip to content

Instantly share code, notes, and snippets.

@marshyski
marshyski / puppetdb-curl.sh
Last active August 11, 2020 09:19
Puppet DB Curl Examples
curl -sfG 'http://localhost:8080/v3/nodes' --data-urlencode 'query=["=", ["node", "active"], true]'
curl -sf 'http://localhost:8080/v3/facts'
curl -sf 'http://localhost:8080/v3/nodes'
curl -sfG 'http://localhost:8080/v3/nodes' --data-urlencode 'query=["=", ["fact", "kernel"], "Linux"]'
curl -sfG 'http://localhost:8080/v3/nodes' --data-urlencode 'query=["=", ["fa, "operatingsystem"], "windows"]'
@marshyski
marshyski / mco-examples.sh
Created March 26, 2015 15:07
MCollective Examples
# Swtich to user to use MCO out of the box
sudo -i -u peadmin
# Find all servers in master catalog
mco find
# Find all servers in master catalog and run class reboot
mco find -C reboot
# Find all servers with puppet fact ec2_ami_id
@marshyski
marshyski / puppet-clean-cert.sh
Created March 25, 2015 17:51
Clean puppet cert from host when system shuts down or terminates
#!/bin/bash
CERTNAME=`facter fqdn`
PUPPET_MASTER='puppet'
SSLDIR=`/usr/local/bin/puppet agent --configprint ssldir`
curl --noproxy '*' -X DELETE -H "Accept: pson" "https://${PUPPET_MASTER}:8140/production/certificate_status/${CERTNAME}" --cacert /etc/puppetlabs/puppet/ssl/certs/ca.pem --key /etc/puppetlabs/puppet/ssl/private_keys/${CERTNAME}.pem --cert /etc/puppetlabs/puppet/ssl/certs/${CERTNAME}.pem
@marshyski
marshyski / docker-maintenance.sh
Last active August 29, 2015 14:17
Docker Operations and Maintenance
# Delete all docker images
for x in `docker images | grep -v REPO | awk '{ print $3 }'`; do docker rmi $x; done
# Delete all docker containers
for x in `docker ps -a | grep -v CONTAINER | awk '{ print $1 }'`; do docker rm -f $x; done
# Start all docker containers
for x in `docker ps -a | grep -v CONTAINER | awk '{ print $1 }'`; do docker start $x; done
# Fresh docker env in Redhat flavors
@marshyski
marshyski / gist:484e81cd865ad0b2ee18
Created March 17, 2015 18:38
Chocolately Cheat Sheet
# List repo sources
choco sources list
# Setup local server
choco sources add -name local -source http://fqdn
choco sources disable chocolately
# Install package
choco install 7zip
choco install 7zip -source http://fqdn
@marshyski
marshyski / customs-tags.rb
Last active August 29, 2015 14:15
Creating Puppet Facts by AWS EC2 Tags with a proxy
#Set proxy before we try to talk to AWS API
ENV["http_proxy"] ||= 'http://proxy:port'
ENV["https_proxy"] ||= 'http://proxy:port'
ENV["NO_PROXY"] ||= '127.0.0.1, localhost, 169.254.169.254'
#Make 1 EC2 API call and put the output on a dot file in /tmp/.tags
region = Facter.value('region')
instanceid = Facter.value('instanceid')
%x{/usr/bin/aws --region #{region} --output text ec2 describe-instances --instance-ids #{instanceid} | grep "TAGS" | awk '{ print $2 " " $3 " " $4}'| tr [:upper:] [:lower:] > /tmp/.tags }.chomp
@marshyski
marshyski / xl-deploy-api-examples
Created February 6, 2015 22:21
Xebia Labs XL Deploy API Examples with cURL
curl -XPOST 'http://<xld-server>:<xld-port>/deployit/repository/ci/Applications/<ci>' --user 'some_username:some_password' -H "Content-type:application/xml" -d '<core.Directory id="Applications/ci"/>'
@marshyski
marshyski / jenkins-api-examples
Last active September 22, 2023 09:18
Jenkins trigger, create and remove jobs and folders
# check if job exists
curl -XGET 'http://jenkins/checkJobName?value=yourJobFolderName' --user user.name:YourAPIToken
# with folder plugin
curl -s -XPOST 'http://jenkins/job/FolderName/createItem?name=yourJobName' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken
# without folder plugin
curl -s -XPOST 'http://jenkins/createItem?name=yourJobName' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken
# create folder
@marshyski
marshyski / JenkinsService.groovy
Created January 27, 2015 19:42
Creating Jenkins Folder via web request with Grails / REST
import grails.plugins.rest.client.RestBuilder
import grails.transaction.Transactional
import sun.misc.BASE64Encoder
@Transactional
class JenkinsService {
def grailsApplication
def createJob(String folderName) {
String url = grailsApplication.config.jenkins.url
@marshyski
marshyski / iptables
Last active December 17, 2020 10:43
DigitalOcean IPTables
*nat
:PREROUTING ACCEPT [235:14024]
:INPUT ACCEPT [235:14024]
:OUTPUT ACCEPT [418:29744]
:POSTROUTING ACCEPT [418:29744]
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [229:47805]