① cobbler 通過哪一個工具來實現系統的自動化部署
一、概述 服務最好安裝在 Centos下,它需要Python支持。 Cobbler服務是一個容器,它整合了以下幾個開源軟體: 1 Dhcp 2 Dns (可選bind,dnsmasq) 3 Kickstart/PXE 4 Apache(提供kickstart 的安裝源,並提供定製化的kickstart配置) 5 Tftp (PXE啟動時需要) 同時,它和apache做了深度整合。通過 cobbler,可以實現對RedHat/Centos/Fedora系統的快速部署,同時也支持Suse 和Debian(Ubuntu)系統。 綜上所述,一個理想的安裝環境是: 相關配置參數: 官方文檔 : https://github或mirrors 相關配置文件: /etc/yum/fedora/epel/5/i386/epel-release-5-4/fedora/epel/5/x86_64/epel-release-5-4/fedora/epel/6/i386/epel-release-6-7/fedora/epel/6/x86_64/epel-release-6-7/fedora/epel/5Server/x86_64/debmirror-20090807-1/linux/rpm2html/search.php?query=debmirror 4 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one //解決辦法 : 默認加密的密碼,可以修改 5 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them //解決辦法 : 關於電源管理(跟DELl 遠程式控制制協議類似東西?),也暫時不管。 10)重啟 cobbler,並更新相關配置 //重啟服務 /etc/init.d/cobblerd restart //同步最新cobbler配置,它會根據配置自動修改dhcp,bind 等服務,因此我稱之為容器的原因。 cobbler sync 註:在 對cobbler進行研究的整個過程中,得到了前輩陳沙克老師( ) 的大力支持和解惑,在編寫此文時,也借鑒了部分沙克老師的文章,特此感謝。
② 如何在Ubuntu 14.04伺服器上自動化部署Spring Boot的應用
1. 在Ubuntu中安裝Java8
以下是一個簡單的安裝方法。
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
2. 本地使用Gradle發布Spring Boot應用
我這里使用Jetty9作為內置的伺服器。
// ...
bootRun {
systemProperties = System.properties
}
configurations {
compile.exclude mole: "spring-boot-starter-tomcat"
}
dependencies {
// spring boot
compile "org.springframework.boot:spring-boot-starter-web:1.3.0.M5"
compile "org.springframework.boot:spring-boot-starter-jetty"
// ...
}
//...
在本地運行默認使用 src/main/resources/application.yml
作為配置文件,而在proction環境中我們系統它支持提供外部的配置文件 application-proction.yml
。
./gradlew bootRun # 開發環境下默認使用項目里的application.yml
# 在本地測試使用外部配置文件
./gradlew bootRun -Dspring.config.location=/path/to/application-proction.yml
# 發布
./gradlew build
# 運行
java -jar build/libs/SpringBlog-0.1.jar # 默認使用jar包裡面的application.yml配置文件
# 使用外部配置文件
java -jar build/libs/SpringBlog-0.1.jar --spring.config.location=/path/to/application-proction.yml
3. 在Ubuntu伺服器上部署Spring Boot應用
# 上傳SpringBlog-0.1.jar到伺服器
scp build/libs/SpringBlog-0.1.jar root@your_server_ip:/root/spring-blog/current
# 在伺服器上配置生產環境的配置文件
scp application-proction.yml root@your_server_ip:/root/spring-blog/current
然後 SSH
登錄伺服器,修改配置文件 application-proction.yml
,試運行應用。
ssh root@your_server_ip
cd spring-blog/current
java -jar SpringBlog-0.1.jar --spring.config.location=application-proction.yml
# application-proction.yml
server:
address: raysmond.com # 使用域名或者IP,啟動之後就可以這個域名或IP訪問網站了
port: 80
contextPath:
spring:
profiles:
active: proction
thymeleaf:
cache: true
jade4j:
caching: true
dataSource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1/spring_blog
username: root
password:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
hbm2ddl.auto: update
show_sql: false
redis:
host: localhost
port: 6379
4. 如何在Ubuntu中後台運行Spring Boot應用?
推薦使用 nohup
這個命令。
cd /root/spring-blog/current
nohup java -jar SpringBlog-0.1.jar --spring.config.location=application-proction.yml \
> ../logs/proction.log 2> ../logs/proction.err &
在Ubuntu還可以 /etc/init.d
目錄下新建一個腳本,把SpringBlog作為service來運行,這樣不用每次都打這么繁瑣的命令了。新建一個 /etc/init.d/spring_blog
文件,內容如下:
#!/bin/sh
SERVICE_NAME=spring_blog
HOME=/root/spring-blog
PATH_TO_JAR=$HOME/current/SpringBlog-0.1.jar
PID_PATH_NAME=/tmp/spring_blog.pid
LOG=$HOME/logs/proction.log
ERROR_LOG=$HOME/logs/proction.err
CONFIG=$HOME/application-proction.yml
case $1 in
start)
echo "Starting $SERVICE_NAME ..."
if [ ! -f $PID_PATH_NAME ]; then
cd $HOME/current
nohup java -jar $PATH_TO_JAR --spring.config.location=application-proction.yml > $LOG 2> $ERROR_LOG &
echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is already running ..."
fi
;;
stop)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stoping ..."
kill $PID;
echo "$SERVICE_NAME stopped ..."
rm $PID_PATH_NAME
else
echo "$SERVICE_NAME is not running ..."
fi
;;
restart)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stopping ...";
kill $PID;
echo "$SERVICE_NAME stopped ...";
rm $PID_PATH_NAME
echo "$SERVICE_NAME starting ..."
cd $HOME/current
nohup java -jar $PATH_TO_JAR --spring.config.location=application-proction.yml > $LOG 2> $ERROR_LOG &
echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is not running ..."
fi
;;
esac
現在就可以使用service的方式來運行網站了。
sudo service spring_blog start
sudo service spring_blog stop
sudo service spring_blog restart
5. 在本地自動化部署網站到遠程伺服器
在本地我用了一個shell腳本和一個python腳本來配合自動化部署。
deploy.sh
使用 gradle
的命令發布jar包,使用 scp
命令吧jar包上傳到伺服器上;
deploy.py
使用 SSH
遠程登錄伺服器,並在伺服器上執行部署命令。
# deploy.sh
#!/bin/bash
SERVER="your_server_ip"
JAR="build/libs/SpringBlog-0.1.jar"
echo "Building $JAR..."
./gradlew build
echo "Upload $JAR to server $SERVER..."
scp $JAR root@$SERVER:/root/spring-blog/
python deploy.py
deploy.py
主要使用了一個 paramiko
庫,用於 SSH
遠程登錄伺服器,並執行命令。這個腳本會把伺服器上 /root/spring-blog/current/SpringBlog-0.1.jar
備份到 /root/spring-blog/releases
中,並把新發布的jar包放到 /root/spring-blog/current
中,然後重啟 spring_blog
服務。
#!/usr/bin/python
import paramiko
import threading
import time
ip = 'your_server_ip'
user = 'root'
password = ''
jar = 'SpringBlog-0.1.jar'
home='/root/spring-blog'
current=home+"/current"
releases=home+"/releases"
def execute_cmds(ip, user, passwd, cmd):
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,22,user,passwd,timeout=5)
for m in cmd:
print m
stdin, stdout, stderr = ssh.exec_command(m)
# stdin.write("Y")
out = stdout.readlines()
for o in out:
print o,
print '%s\tOK\n'%(ip)
ssh.close()
except :
print '%s\tError\n'%(ip)
if __name__=='__main__':
print 'Start deploying %s to server %s'%(jar, ip)
now = time.strftime("%Y%m%d%H%M%S")
cmd = [
'echo Stop spring_blog service... && service spring_blog stop',
'echo Flush all redis cache data... && redis-cli -r 1 flushall',
'echo Stop redis server... && service redis_6379 stop',
'echo Use new jar... ' + \
' && mv ' + current + '/' + jar + ' ' + releases + '/' + now + '_' + jar ,
'mv ' + home + '/' + jar + ' ' + current + '/' + jar,
'echo Stop redis... && service redis_6379 start',
'echo Start spring_blog service... && service spring_blog start ' + \
' && echo All done.'
]
a=threading.Thread(target=execute_cmds, args=(ip,user,password,cmd))
a.start()
配置完以後,在本地寫完代碼就可以運行 ./deploy.sh
一鍵部署到遠程伺服器了。
③ 如何製作部署時軟體自動安裝程序(比如QQ)
按你所說的.軟體自動安裝程序.
很簡單一看就會
深度軟體安裝管理器
看圖:
http://www.orsoon.com/Soft/UploadPic/2008-9/2008913214160944.jpg
下載
http://www.orsoon.com/Soft/8537.html
④ 大家是怎麼自動化部署測試環境的
牽涉到原則性的問題,我這里不敢隨便說,就給幾個建議吧。
1.盡量模擬。
測試環境理想情況是與產品運行環境一致,包括硬體和軟體的,但實際上在互聯網公司,幾乎沒有哪家能夠做到這點,不現實。但作為測試人員,應該想盡辦法做到與產品運行環境一致或接近,越接近,測試結果越可靠,測試數據越有說服力。
2.盡量獨立。
條件允許的話,盡量把手工測試、自動化測試、性能測試(這個比較特殊,一般都單獨拿出來)的環境隔離,各自在獨立的環境下操作執行。為何要隔離開?因為手工測試涉及人為頻繁操作,包括各種異常測試,極易把環境的純凈性破壞掉。自動化測試環境獨立,不受外界干擾,容易高效率執行自動化測試用例,避免無謂的環境和人為因素造成誤判。性能測試一般運行時間比較長,如果放在日常的自動化測試環境中,不利於持續集成和每日頻繁的產品驗證工作。
3.易擴展。
在每套測試環境相對獨立的情況下,各套環境的配置應該具備可擴展性,便於增加或減少某些設備配置,適應業務的需求和成本控制。
4.容災性。
⑤ 如何實現企業應用部署自動化
目前市場上將機器人流程自動化定位為無代碼的用戶端計算機工具,由業務部門擁有並運行,實現日常工作任務的自動化並帶來可量化的經濟效益。它可以降低業務部門對傳統IT自動化方案的依賴,提高效率與准確性,降低運營風險,實現對高昂人力的重新部署,以重新聚焦於創造價值的活動。
但與此同時,行業分析公司Gartner在其2019年的報告中大膽預測,到2021年,將有近40%的企業因為使用不當、使用場景單一和無法擴展而後悔購買機器人軟體。如何打造可持續發展的企業流程自動化能力,解鎖虛擬勞動力所帶來的全部紅利,成為了企業需要認真思考的問題。
在實踐中,雖然有很多公司開始嘗試部署及應用機器人流程自動化,但往往僅在一開始取得了很好的效果,後來卻停滯不前,未能充分發揮虛擬勞動力的潛力。為什麼會有這樣的結果?是哪些因素阻礙了機器人流程自動化達到其預期的效果?
我們依據實施及使用機器人流程自動化的經驗和專業知識,總結出了成功實施企業級流程自動化的三大關鍵要素,即戰略、運營模式及人員。
機器人流程自動化在應用操作層面具有良好的集成能力,其項目的實施極為迅捷並擁有相對友好的用戶界面,這使得很多企業將機器人流程自動化視為戰術性解決方案。例如,對舊系統之間的集成、填補其他企業應用程序留下的自動化空白並最終使員工從重復性任務中解脫出來。
機器人流程自動化的高投資回報率雖然可以通過戰術性的實施來實現,但如果企業能夠更有戰略性地使用並部署虛擬勞動力,則會享受到更多紅利。盡管速贏這個概念在流程自動化實施的過程中非常有效,但僅僅基於某個單項指標選擇要實施的流程是錯誤的。將虛擬勞動力提升至企業戰略層面意味著在選擇業務流程時,要考慮到協同效應,並且將根據必要的部署規模和時間來建立相應的業務案例。領導層的戰略支持對於企業打造可持續發展的機器人流程自動化能力至關重要。原因出自於以下四個方面:
1.構建有說服力的業務案例
理論上講,機器人通過7天×24小時的不間斷工作,可以完成大約五名全職員工的工作量(FTE),處理任務的速度平均比人工快25%,並且消除了流程步驟之間的空閑時間,尤其是需要由多人協同處理某項流程時。因此,通常情況下,業務案例是基於一個機器人至少完成三到四名全職員工的工作量所構建的。但是,僅通過戰術性部署機器人流程自動化並無法實現期望的結果。因為要實現這些目標,公司必須實施足夠數量的自動化流程。例如,當所有流程因為業務需要只能在白天完成時,企業只利用了能夠全天候工作的虛擬勞動力三分之一或一半的能力。
2.從簡單流程擴展到復雜流程
在機器人流程自動化實施的初期,企業一般會聚焦於相對簡單的流程,邏輯清晰,實施敏捷,加上足夠的交易量,可以很容易構建出相關的業務案例。但為了確保機器人流程自動化的可持續發展,企業必須盡快找到可實施相關技術的新領域和機會,其中可能包括更為復雜的流程。幸運的是,現在的虛擬勞動力已經變得更加智能。通過將機器人流程自動化融入到企業的整體數字化戰略之中,與企業所應用的其他前沿技術相結合(如文字識別、自然語言處理、機器學習、人工智慧等),將創造出更多應用虛擬勞動力的場景。
3.專注於企業流程的標准化及優化
我們在為企業實施流程自動化的時候會經常發現,現有流程的設計未必是最優狀態。流程的步驟及邏輯可能未必清晰,總部與分/子公司的流程未必統一。機器人流程自動化的實施是企業優化其流程的一個契機。雖然同時完成流程重建及自動化實施將花費更長的時間,但其所能帶來的結果將更為可觀。
4.確保機器人流程自動化融入企業IT戰略
從技術層面考慮,應用機器人流程自動化或將影響企業 ERP 部署的安排(延長ERP系統迭代間隔期),作為企業舊系統的新集成方式,並有可能將 IT 資源從日常的API 介面開發和維護中解放出來。預先了解機器人的特性,將幫助機器人流程自動化融入到企業的整體 IT 戰略規劃中。
在企業完成其虛擬勞動力的戰略規劃後,需建立一套可持續發展的運營模式(如數字化虛擬勞動力卓越中心),確保戰略的落地實施。在起步階段,企業應重點關注流程識別、自動化實施、運維管理及持續創新這四大職能,而非人員數量的多少。
打造可持續發展的企業流程自動化能力需要關注戰略、運營模式、人員三大要素,缺一不可。如果實施得當,虛擬勞動力的能力是巨大的,其產生的結果也是驚人的。然而,為了充分獲得虛擬勞動力所帶來的紅利,企業必須從戰略上實施機器人流程自動化,並對機器人的開發和持續運營的資源投入進行認真管理。戰略性實施需要有說服力的業務案例,從簡單的流程到復雜的流程,並將機器人流程自動化作為總體流程改進的一部分,將其融入企業的整體IT技術方案之中。
另外,企業不應忽視流程上線後對機器人的持續監督需求。數字化操作和人工操作一樣,都需要監督。一旦第一台機器人投入使用,就需要持續進行監督。監督涉及到管理工作隊列、日程安排、執行規則和支持,以及機器人的端到端可視性、機器人活動的實時儀錶板,以及實施自動化與控制和調度的職責分離。任何機器人流程自動化的實施都必須考慮到對這種新能力的要求及其與現有運營模式的整合。
*以上內容引用、整理與轉載自「安永EY」
⑥ 如何使用SHELL批量或自動化部署軟體
思路如下
shell 非交互安裝軟體
變數+軟體目錄
循環體
安裝軟體命令
結束。
⑦ 如何實現系統和軟體的自動部署
請按照以下方法卸載瑞星: 方法1 第一步: 請點擊開始菜單,在運行中輸入regedit,點確定按鈕進入注冊表編輯器,找到HKEY_L0CAL_MACHINE\SoftWare\Rising,如果您安裝了瑞星防火牆,在rising鍵值中會有rav(瑞星殺毒軟體)和rfw(瑞星個人防火牆)兩項,請根據實際情況刪除rav或rfw鍵值,然後退出注冊表編輯器。 第二步: 找到瑞星的安裝目錄(默認:C:\Program Files\Rising),根據實際情況刪除rav(瑞星殺毒軟體)或rfw(瑞星個人防火牆)文件夾,如果無法刪除,可以到安全模式下操作。然後重新安裝瑞星殺毒軟體或防火牆。 方法2 你進控制面板的添加或刪除程序裡面卸載試試看。還可以安裝超級兔子來卸載呀, 方法3 如果你會重裝系統就重啟電腦進入f8里重裝 或者也可以打電話給賣電腦的來你家重裝系統 能幫你的就那麼多了 希望你喜歡 謝謝! (不準抄襲 抄襲全家死光光)
⑧ openstack自動化部署有哪些工具
Fuel比較值得推薦
這是Mirantis出品的部署安裝工具,2013年10月份,推出他的3.2版本,讓人很震撼,基本算是把Openstack所有的部署都web化,你可以太多的選擇:尤其是網路,存儲。這基本都是大家學習的榜樣。已經敢和企業簽訂SLA。
目前國內杜玉傑,九州雲,在做該項目的漢化工作和考慮日後的技術支持。
Devstack
這應該算是Openstack最早的安裝腳本,他是通過直接git源碼,進行安裝,目的是讓開發者可以快速搭建一個環境。目前這套腳本可以在Ubuntu和Fedora下跑的很好。
如果你想了解新版本的功能,通過Devstack是一個最佳選擇。我第一次成功安裝Openstack,就是用這個。
Diablo安裝腳本
這算是我知道的第一個基於ubuntu 源的安裝腳本,當時Diablo發布的時候,有bug,keystone和Horizon無法一起工作,ubuntu 11.10源里的包也是有相同的bug,並且Ubuntu 官方並不打算維護和升級。這位作者個人身份,維護了Diablo 版本後來的升級,打包,並且寫了一套腳本。
這套腳本,其實寫的非常好,我同事改造了一下,就可以安裝Essex版本。目前正在改進,用來安裝Folsom版本。
Stackops
Openstack起步的時候,官方的安裝文檔,其實基本都是來自Stackops,當時他們提供Openstack的部署服務。你下載一個iso,裝完一個ubuntu系統後,就會轉到他們的web,你填寫相關的配置參數,通過chef進行部署。
Stackops在Chef上是比較強悍的,包括Dell的Crowbar,也是和他合作,才搞定Chef。不過我的理解,他的Chef 腳本是沒有開源的。
Stackops通過商業定製,進行收費。目前感覺有點走下坡路,業內的聲音比較小了。對openstack的新版本支持比較慢,Essex支持,到9月份才支持。目前還沒有任何關於Folsom 的支持。
Crowbar
在Openstack上,Dell是有點郁悶,中國的那句老話,起個大早,趕個晚集。Openstack剛發布的時候,Dell就號稱要做一個工具部署,不過畢竟是硬體公司,對軟體還是比較外行。
Dell的Crowbar,是一個iso,裝完後,你可以在web界面進行Openstack的部署,底下其實也是使用Chef。集成了Nagios監控,安裝OS是dell自己開發的,有點創新。
以前Dell的Crowbar一個大的特色就是可以遠程設置機器的Raid和Bios,這是從Dell,我才知道可以這樣做。不過也正因為這個特色,導致廠商綁定,還有Dell自己如何定位Crowbar,當初還想搞一個商業的版本,結果後來放棄。
Crowbar目前的開發,其實應該是遇到問題,任何做部署工具的,應該都是一個很好的失敗的案例。後續的發展,維護,更新都是問題。
Maas+Juju
這是Canonical推出的部署工具,可以用在Openstack的部署,類似Puppet,Chef 的部署工具。Maas是用於安裝ubuntu,juju是用於部署應用。
⑨ django+nginx+uwsgi+git有哪些自動化部署工具
ansible可以定義不同的role,比如裝python是一個role,安裝django是一個role可以給role的不同步驟定義tag,這樣執行時就可以按tag來執行關鍵ansible是python寫的,用ssh來執行,不需要安裝agent!
⑩ 大家都是用什麼自動化部署工具的啊 - PHP進階討論
現在已經出現一些自動部署系統供應商,我們公司Electric Cloud的產品Electric Flow是一個支持端到端自動化的平台,可支持與配置庫SVN集成,自動構建、調用自動化測試以及自動部署到你需要的環境。 平台支持自定義自動化流程可解決任何復雜的部署過程。
Electric Cloud總部在美國矽谷,國內你可聯系我:[email protected]