- Choose Amazon Linux AMI as it comes configured with a strong set of tools
- Create security group with access to TCP on ports 22, 80, 8080, and 52698
- Generate key-pair called
jenkins-> download asjenkins.pem- move
jenkins.peminto ~/.ssh - run
chmod 400onjenkins.pemto set correct permissions
- move
- Launch Instance
- Locate public IP settings in AWS instance management console and copy to clipboard
- Connect to instance via SSH
ssh -i ~/.ssh/jenkins.pem [email protected] -R 52698:localhost:52698 sudo yum install -y git java-1.8.0-openjdk-develsudo yum update -y aws-clisudo wget -O /etc/yum.repos.d/jenkins.repohttp://pkg.jenkins-ci.org/redhat/jenkins.reposudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.keysudo yum install -y jenkins
Create bot user and login:
sudo useradd qs-jenkin-botsudo passwd qs-jenkin-botsudo su qs-jenkin-botcd ~- Edit
/etc/sudoersand add this line below root ALL=(ALL) ALL qs-jenkin-bot ALL=(ALL:ALL) ALL
Install RVM
sudo \curl -sSL https://get.rvm.io | bash -s stableecho "gem: --no-ri --no-rdoc" >> ~/.gemrc
Generate public key for Github
ssh-keygencat ~/.ssh/id_rsa.pubCopy the resulting output to your clipboard for later use
- Open
/etc/sysconfig/jenkins - Replace $JENKINS_USER="jenkins" with $JENKINS_USER="qs-jenkin-bot"
sudo chown -R qs-jenkin-bot:qs-jenkin-bot /var/lib/jenkinssudo chown -R qs-jenkin-bot:qs-jenkin-bot /var/cache/jenkinssudo chown -R qs-jenkin-bot:qs-jenkin-bot /var/log/jenkinssudo service jenkins restart
-
sudo yum update -y -
sudo yum groupinstall -y 'Development Tools' -
sudo yum groupinstall -y development-libs -
This is a huge list - it's deliberate
sudo yum install -y libffi-devel libyaml-devel gcc-c++ patch readline readline-devel zlib zlib-devel openssl-devel libxml2-devel libxslt-devel libcurl-devel make bzip2 autoconf automake libtool bison postgresql-devel postgresql postgresql-server postgresql-devel postgresql-contrib postgresql-docs ImageMagick-devel ImageMagick ruby-devel mysql postfix
sudo mkdir /var/installerssudo chown -R qs-jenkin-bot:qs-jenkin-bot /var/installerscd /var/installerswget http://sphinxsearch.com/files/sphinx-2.2.5-release.tar.gztar xvfz sphinx-2.2.5-release.tar.gzcd sphinx-2.2.5-release./configure --prefix=/usrmakesudo make install
- sudo yum install nodejs npm --enablerepo=epel
sudo yum install mysqlsudo chkconfig mysqld onsudo service mysqld start
Login to mysql
$> mysql -u root -p
CREATE USER 'tester'@'%' IDENTIFIED BY 'testing123';
CREATE USER 'app'@'%' IDENTIFIED BY 'EYSSSTS4';
GRANT ALL PRIVILEGES ON *.* TO 'tester'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'app'@'%' WITH GRANT OPTION;
// exit mysql
Edit /var/lib/pgsql9/data/pg_hba.conf and change this:
"local all all ident" into "local all all trust"
sql -U postgres
postgres=# ALTER USER postgres WITH PASSWORD 'password';
postgres=# \q
rake db:create rake db:create_trove rake db:schema:load RAILS_ENV=test db:schema:load rake db:migrate mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p