Jenkins+Python導入完全版


一、紹介


一般的なWebサイトの導入プロセスは、単純化されたプロセスの需要分析ではなく、完全なプロセスです.プロトタイプ設計-開発コード-イントラネット導入-テストの提出-オンライン確認-バックアップデータ-イントラネット更新-最終テストです.もし、イントラネット導入のコードに異常が発見された場合、ロールバックする必要があります.

導入プロセス


私たちはjenkinsツールプラットフォームを通じて全自動配置+テストを実現することができ、拡張可能な持続的な統合エンジンであり、オープンソースソフトウェアプロジェクトであり、オープンで使いやすいソフトウェアプラットフォームを提供し、ソフトウェアの持続的な統合を可能にすることを目的としています.Jenkinsはインストールと構成が非常に簡単で、簡単で使いやすく、簡単に言えば以下の人に便利です.
開発者:コードを作成して、自分でソースコードのコンパイル、パッケージングなどの仕事を行う必要がなくて、直接コード分岐をSVN、GIT倉庫に保管すればいい.warソースマルチは自動的にコードをサーバの上に置くメンテナンス担当者:人工的な介入の誤り率を軽減し、ansibleは同時にメンテナンス担当者の煩雑なアップロードコードを解放し、手動でバックアップし、を更新することを完成した.
テスト担当者:jenkinsで簡単なコードとウェブサイトのテストを行うことができます.
継続的な統合の意義(作業効率の向上をまとめた)継続的な統合のいずれかの段階は自動的に完了し、あまり人工的な介入を必要とせず、時間、費用、ワークロードを節約するために重複プロセスを削減するのに役立ちます.
継続的な統合により、各時点でチームメンバーがコミットしたコードが正常に統合されることが保証されます.すなわち、どの時点でもソフトウェアの統合の問題を最初に発見することができ、導入可能なソフトウェアを任意の時間に公開することが可能となる.
継続的な統合はソフトウェア自体の発展傾向にも有利であり、この点は需要が明確でないか、頻繁に変更される情景の中で特に重要であり、持続的な統合の品質はチームの有効な意思決定を助けると同時に、チームの製品開発に対する自信を確立することができる.

継続的に統合されたコンポーネント


自動コンパイル、配布、導入、およびテストを含む自動構築プロセス
コードの保守性を保証するためにバージョン管理ソフトウェアが必要であるとともに、構築プロセスの素材ライブラリ、例えばSVN、GITコードライブラリである.
jenkins持続統合サーバは、構成が簡単で使いやすい持続統合サーバです.

二、jenkins取付


Jenkinsはjavaコードを使用して開発されているので、jenkinsを実行するにはjavaコンテナをインストールする必要があります.また、javaのwebサーバはtomcatを使用しているので、JDK+Tomcatをインストールします.
インストールjenkins+tomcat
[root@vagrant-centos65 ~]# yum -y install java-1.8.0-openjdk.x86_64

[root@vagrant-centos65 ~]# cd /opt/

[root@vagrant-centos65 opt]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.79/bin/apache-tomcat-7.0.79.tar.gz

[root@vagrant-centos65 opt]# tar zxvf apache-tomcat-7.0.79.tar.gz

[root@vagrant-centos65 opt]# mkdir -p /usr/local/tomcat

[root@vagrant-centos65 opt]# mv apache-tomcat-7.0.79/* /usr/local/tomcat

インストールjenkins
[root@vagrant-centos65 ~]# cd /opt/

[root@vagrant-centos65 opt]# wget http://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.60-1.1.noarch.rpm

[root@vagrant-centos65 opt]# rpm -ivh jenkins-2.60-1.1.noarch.rpm

[root@vagrant-centos65 opt]# /etc/init.d/jenkins start
Starting Jenkins                                           [  OK  ]

[root@vagrant-centos65 opt]# netstat -tnlp | grep 8080

[root@vagrant-centos65 opt]# /etc/init.d/jenkins start
Starting Jenkins                                           [  OK  ]

[root@vagrant-centos65 opt]# netstat -tnlp | grep 8080
tcp        0      0 :::8080                     :::*                        LISTEN     7599/java 

三、python 2をアップグレードする。6からpython 2.7


django 1のため.7以降のバージョンではpython 2はサポートされていません.6 python 2をアップグレードする必要があります.6--python2.7
[root@vagrant-centos65 ~]# yum -y install  zlib zlib-devel openssl openssl-devel  sqlite-devel
[root@vagrant-centos65 ~]# wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
[root@vagrant-centos65 ~]# tar -jxvf Python-2.7.3.tar.bz2
[root@vagrant-centos65 ~]# cd Python-2.7.3
[root@vagrant-centos65 Python-2.7.3]# ./configure    --prefix=/usr/local/python2.7
[root@vagrant-centos65 Python-2.7.3]# make && make install
[root@vagrant-centos65 Python-2.7.3]# cd /usr/bin/
[root@vagrant-centos65 bin]# ll | grep python
-rwxr-xr-x.   2 root root      4864 Nov 22  2013 python
lrwxrwxrwx.   1 root root         6 Jan 16  2014 python2 -> python
-rwxr-xr-x.   2 root root      4864 Nov 22  2013 python2.6
[root@vagrant-centos65 bin]# mv python python2.6.bak
[root@vagrant-centos65 bin]# ln -s /usr/local/python2.7/bin/python /usr/bin/python
[root@vagrant-centos65 bin]# vi /usr/bin/yum
#!/usr/bin/python2.6

五、djangoのインストール


setuptools pipのインストールはsetuptoolsに依存する必要があります.setuptools をインストールする必要があります.
[root@vagrant-centos65 bin]# cd /opt/

[root@vagrant-centos65 opt]# wget https://pypi.python.org/packages/61/3c/8d680267eda244ad6391fb8b211bd39d8b527f3b66207976ef9f2f106230/setuptools-1.4.2.tar.gz

[root@vagrant-centos65 opt]# tar zxvf setuptools-1.4.2.tar.gz

[root@vagrant-centos65 opt]# cd setuptools-1.4.2

[root@vagrant-centos65 setuptools-1.4.2]# python setup.py install


インストールpip
[root@vagrant-centos65 ~]# cd /opt/

[root@vagrant-centos65 opt]# wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate

[root@vagrant-centos65 opt]# tar zxvf pip-1.5.4.tar.gz

[root@vagrant-centos65 opt]# cd pip-1.5.4

[root@vagrant-centos65 pip-1.5.4]# python setup.py install

[root@vagrant-centos65 pip-1.5.4]# pip
-bash: pip: command not found

[root@vagrant-centos65 pip-1.5.4]# find / -name pip
/usr/local/python2.7/bin/pip
/usr/local/python2.7/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip

[root@vagrant-centos65 pip-1.5.4]# ln -s /usr/local/python2.7/bin/pip /usr/bin/pip

django のインストール
[root@vagrant-centos65 pip-1.5.4]# pip install django
[root@vagrant-centos65 pip-1.5.4]# pip list
Django (1.11.3)
pip (1.5.4)
pytz (2017.2)
setuptools (1.4.2)
wsgiref (0.1.2)

六、プラグインのインストール
プラグイン管理プラグインのダウンロードに失敗した場合は、ソースを交換します.http://mirror.xmission.com/jenkins/updates/current/update-center.jsonpythonプロジェクトを構築するだけなので、こちらには2つのプラグインしか必要ありません.
git plugin
python plugin
pipeline
七、プロジェクトの作成
まとめ
   

     master-build    

1.   ( 7 , 100)
2.     git   jenkins    

ビルドフリップフロップPoll SCM(日常表は時間で判断可能)H/2***(2分でバージョンライブラリをチェックします.更新があればトリガーしません.更新がなければトリガーしません)注意:Scheduleの構成規則は、左から右に5つのスペースで区切られた文字で構成されています.すべてを表して、0 20***は“いかなる年のいかなる月のいかなる日の20時0分”を表して構築します
構築execute shell
cd django     
python mange.py test  

構築後のアクションemail notificationsの選択
メールボックスを入力不安定な構築のたびにメールを送信

八、配置項目の作成


新しいjob itemnameを作成する:master deploy copyfrom:master-buildクリックok
フリップフロップの変更
Build after other projects are built(これをチェック)projects to watch(master_build)現在のアクションの構築に成功した後、私はトリガーしました.
構築
cd testdjango  
BUILD_ID=DONTKILLME nohup python manage.py runserver 0.0.0.0:8000 &
BUILD_ID=DONTKILLME:jenkinsの中でバックグラウンドで実行するプログラムはjenkinsによって自動的に殺されるので、BUILDIDというパラメータを加えてこのパラメータを加える必要があります.あなたのプログラムは殺されません.
最後にコミットして構築!
pycharmでプロジェクトを修正しpushを上げるとjenkinsは2分ごとに変更するかどうかをチェックし、変更すると構築をトリガーします!

job webhookフックを作成pushリクエストを受信するとjenkinsにpostリクエストが送信されます


最初のステッププロジェクト作成タスク名master-buildフリーコードスタイル
古いコンストラクションを破棄(7日間保持、最大コンストラクションの最大数100)ソース管理選択gitコードクラウドからコードを引き出す必要がある場合はjenkins公開鍵をコードクラウドの上に置く必要があります.そうすれば、コードを引き出すことができます.
ssh-keygen -t rsa -C "[email protected]"
 
cat ~/.ssh/id_rsa.pub     
cat ~/.ssh/id_rsa         jenkins

ビルドトリガpoll SCM(日常表は時間で判断可能)H/2****(2分バージョンライブラリをチェックして更新があればトリガーしない更新がなければトリガーしない)注意:Scheduleの構成規則は5つのスペースで区切られた文字で構成されており、左から右に分けて:分時天月年を表します.*すべてを表す、0 20***は、「任意の年の任意の月の任意の日20時0分」で構築されたexecute shell の構築
cd testdjango  # 
python mange.py test

構築後操作選択email notificationsメールボックス選択不安定な構築のたびにメールを送信

構築jobの作成


新しいjob itemnameを作成する:master deploy copyfrom:master-buildクリックok
他には変更する必要はありません2つの場所を変更する必要があります

最初の場所


ビルドトリガBuild after other projects are built(これをチェック)projects to watch(master_build)現在のアクションビルドに成功した後、をトリガーしました.

2番目の場所


構築
cd testdjango  
BUILD_ID=DONTKILLME nohup python manage.py runserver 0.0.0.0:8000 &

BUILD_ID=DONTKILLME:jenkinsの中でバックグラウンドで実行しているプログラムはjenkinsによって自動的に殺されるので、BUILDIDというパラメータを加えてこのパラメータを加える必要があります.あなたのプログラムは殺されません.

linuxはpythonをdjango 1のためアップグレードします。7以降のバージョンではpython 2はサポートされていません。6 python 2をアップグレードする必要があります。6--python2.7

yum -y install  zlib zlib-devel openssl openssl-devel  sqlite-devel
#wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2  
#tar -jxvf Python-2.7.3.tar.bz2 
#cd Python-2.7.3  
#./configure    --prefix=/usr/local/python2.7
#make           
#make install  
cd /usr/bin/
mv python  python2.6.bak
ln -s /usr/local/python2.7/bin/python /usr/bin/python
---
install setuptools 
wget https://pypi.python.org/packages/61/3c/8d680267eda244ad6391fb8b211bd39d8b527f3b66207976ef9f2f106230/setuptools-1.4.2.tar.gz
tar xvf  setuptools-1.4.2.tar.gz  
cd setuptools
python setup.py install 
install pip 
wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate
tar xvf   pip-1.5.4.tar.gz
cd pip-1.5.4
python setup.py install 
ln -s /usr/local/python2.7/bin/pip /usr/bin/pip

pip install django

パスワードなしでログイン

$ scp ~/.ssh/id_rsa.pub root@:pub_key // 
$ cat ~/pub_key >>~/.ssh/authorized_keys // authorized_keys ,  

cd/data/django11/testdjango git pull BUILD_ID=DONTKILLME nohup python manage.py runserver 0.0.0.0:8000 & exit
ssh [email protected] 'bash -x -s' また、自動化運転に興味のある方は、グループ:526929231に参加して、一緒に勉強したり討論したりすることができますよ~~