使用ansible-playbook来搭建jenkins
目录
-
- ansbile-playbookの書き方
-
- 実行手順
- Vagarantでの実行
如何编写ansible-playbook
构成
ansible_test
├─ansible
├─inventory
│ └─jenkins
│ └─jenkins.yml
├─roles
│ └─jenkins
│ ├─tasks
│ │ ├─common.yml
│ │ ├─jenkins.yml
│ │ └─main.yml
│ └─vars
│ └─main.yml
└─jenkins.yml
库存
[jenkins]
# 対象のサーバのIPアドレスまたはホスト名
- 対象のサーバを定義
主要
---
- name: Setup jenkins
hosts: all
sudo: yes
roles:
- jenkins
-
- 実行するファイル
-
- この場合sudo権限でroles/jenkins/main.ymlを実行する
- rolesは複数指定可能
---
- include: common.yml
- include: jenkins.yml
-
- ベタ書きもできるけど他にもタスクしやすいように分けた
- 上から順に実行
任务
常见的 de)
---
- name: Install common packages
apt: pkg={{ item }} state=latest update_cache=yes
with_items: jenkins_preparation_items
tags:
- common
- jenkins
-
- with_itemsをvars/main.ymlに記述
- tagsを登録しておくと登録したtagのみを実行することも可能
詹金斯
---
- name: Add the maven3 PPA
raw: add-apt-repository ppa:natecarlson/maven3 -y
tags:
- jenkins
- name: Install jenkins dependencies
apt: pkg={{ item }} state=present update_cache=yes
register: jdk_installed
with_items: jenkins_dependencies
tags:
- jenkins
- name: Update java alternatives
action: command update-java-alternatives -s java-1.7.0-openjdk-amd64
when: jdk_installed.changed
tags:
- jenkins
- name: Get jenkins pkg
action: shell wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
tags:
- jenkins
- name: Add jenkins pkg
command: echo 'deb http://pkg.jenkins-ci.org/debian binary/' > /etc/apt/sources.list.d/jenkins.list
tags:
- jenkins
- name: Install jenkins
apt: pkg=jenkins state=latest update_cache=yes
register: jenkins_installed
tags:
- jenkins
主要的
---
jenkins_preparation_items:
- python-software-properties
- python
- g++
- make
- git
jenkins_dependencies:
- openjdk-7-jre
- openjdk-7-jdk
- maven3
适合的选择
parameterrequireddefaultchoicescommentcache_valid_timeno
キャッシュの有効時間
単位はsecforcenono
- yes
- no
installs/removesを強制的にするstatenopresent
- latest
- absent
- present
installするpackageの状態を確かめるupdate_cacheno
- yes
- no
apt-get updateをoperation前にするかどうか
- 他にもあるよ
执行步骤
创建Ansible环境
安装Ansible
$ brew update
# エラーが出る方のみ
$ cd $(brew --prefix)
$ git fetch origin
$ git reset --hard origin/master
$ brew install ansible
$ ansible --version
# ansible-1.7.2
不需要使用ansible-1.7.2版本。
# インストール
$ easy_install virtualenv
# virtual環境の構築
$ virtualenv ansible-env
# virtual環境に入ってansibleに必要なものをinstallする
$ source ansible-env/bin/activate
$ easy_install pip
$ pip install paramiko PyYAML jinja2
# ansibleのinstall
$ git clone git://github.com/ansible/ansible.git ansible_setup
$ cd ansible_setup
$ source ./hacking/env-setup
$ git submodule update --init --recursive
$ cd ..
# ERROR: apt is not a legal parameter in an Ansible task or handler はgit submodule updateで解決した
执行
$ pwd
# /Users/hoge/ansible_test
// 状況に応じてoptionつける
$ ansible-playbook -i ./ansible/inventory/jenkins/jenkins.yml ./ansible/jenkins.yml -K
-
- -i INVENTORY, –inventory=INVENTORY
インベントリファイルを指定する
-k, –ask-pass
SSHのパスワードを尋ねる
-K, –ask-sudo-pass
sudoのパスワードを尋ねる
-u REMOTE_USER, –user=REMOTE_USER
SSHで接続するユーザ名を指定する
-C, –check
dry runできる(実際にサーバは変更されない)
-t TAGS, –tags=TAGS
tagを指定できる
カンマ区切りで複数指定も可能
-vvv
コンソール出力される
在Vagrant上运行
Vagrantfile的配置设置
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant::configure("2") do |config|
# ubuntu 12.04...
config.vm.box = "ubuntu/precise64"
#jenkins
config.vm.network :forwarded_port, guest: 8080, host: 8080
# using a specific IP.
config.vm.network :private_network, ip: "192.168.33.10"
end
库存
[jenkins]
192.168.33.10
sshconfig 的设置
Host 192.168.33.*
IdentityFile ~/.vagrant.d/insecure_private_key
User vagrant
执行
$ vargant --version
Vagrant 1.6.5
$ vagrant up
$ ansible-playbook -i ./ansible/inventory/jenkins/jenkins.yml ./ansible/jenkins.yml -K
确认访问
- localhost:8080でjenkinsが起動していれば完了
请参阅网址。
(Translation: Please refer to the URL.)
-
- https://weluse.de/blog/installing-ansible-on-os-x.html
-
- http://d.hatena.ne.jp/akishin999/20130815/1376520672
-
- https://github.com/yteraoka/ansible-tutorial/wiki/ansible-playbook%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89
-
- http://docs.ansible.com/apt_module.html
- http://qiita.com/harapeko_wktk/items/f4f44ddb5d3912e15ea2