2016-11-25 144 views
1

我正在運行RedHat的兩個實例。我在一臺機器上安裝了SaltMaster,而在另一臺機器上安裝了SaltMinion。我正在使用Salt的免費版本。我想測試SaltStack來執行基本的配置管理任務。如果它可以將一個文件從SaltMaster轉移到SaltMinion,那就太好了。如果它可以在SaltMinion上安裝Apache Web服務器,那就太棒了。任一任務都會幫助我學習。我的學習目標是半靈活的。可以使用salt '*' test.ping。答案是True。我嘗試這樣的命令:salt '*' state.apply如何配置SaltStack第一次傳輸文件(或安裝包)?

我得到這個錯誤:

> hostname.fqdn: 
>  Data failed to compile: 
> ---------- 
>  No matching salt environment for environment 'qa' found 
> ---------- 
>  No matching sls found for 'qa1' in env 'qa' 
> ---------- 
>  No matching sls found for 'base1' in env 'base' 
> ---------- 
>  No matching salt environment for environment 'dev' found 
> ---------- 
>  Specified SLS base1 in saltenv dev is not available on the salt master or through a configured fileserver 

我修改的/ etc /鹽/主文件。我註釋掉這些行:

fileserver_backend: 
    - git 
    - roots 

我再次嘗試這個命令:salt '*' state.apply

我收到此錯誤:

> [ERROR ] Error parsing configuration file: /etc/salt/master - 
> expected '<document start>', but found '<block mapping start>' in 
> "<string>", line 547, column 1: 
>  fileserver_backend: 
> ^[ERROR ] Error parsing configuration file: /etc/salt/master - expected '<document start>', but found '<block mapping start>' in 
> "<string>", line 547, column 1: 
>  fileserver_backend: 
> ^

我一直在這裏下列指示: https://docs.saltstack.com/en/latest/topics/tutorials/states_pt1.html

我創建了一個webserver.sls文件。

我插入這些行的內容:

apache:     # ID declaration 
    pkg:     # state declaration 
    - installed   # function declaration 

我怎麼看不到三行的方向上面就足以配置SaltStack工作。 apache安裝媒體需要在哪裏?轉讓發生在哪裏?我是否應該將媒體下載到SaltMaster?我會這樣認爲的。但我會在哪裏放?我有一個衛星服務器來運行yum命令。

或者,我如何讓SaltStack將文件從SaltMaster傳輸到SaltMinion?

回答

0

的第一個錯誤([...]No matching sls found for 'qa1' in env 'qa'[...])表明您已經配置了很多不同的環境(file_roots),這是不存在於你的主人的文件系統。你的方法來解決這個位於正確的方向,但導致這個錯誤:

[ERROR ] Error parsing configuration file: /etc/salt/master - expected '', but found '' in "", line 547, column 1: fileserver_backend:^[ERROR ] Error parsing configuration file: /etc/salt/master - expected '', but found '' in "", line 547, column 1: fileserver_backend: ^

您不再能夠test.ping你的奴才,因爲鹽的主人不應該再運行,不是嗎?要解決它只是閱讀錯誤信息。它會告訴你鹽配置文件中salt的哪個點不愉快。

fileserver_backend配置將對哪些類型的後端應該可用。您應該檢查file_roots配置以實際定義哪些根可用。根在文件系統中引用鹽狀態文件夾。

一個非常簡單的配置可能看起來像:

file_roots: 
    base: 
    - /srv/salt 

它假定/srv/salt是你的狀態樹的根 - 這實際上意味着,你webserver.sls應位於此文件夾中。

您的webserver.sls看起來很有前途 - 它應該在應用它時將apache2安裝在小型服務器上。

管理配置在主控上的文件並將它們傳送給小手是鹽可以輕鬆實現的。一個簡單的狀態可能是:

/etc/myawesomeconfigurationfile.conf: 
    file.managed: 
    source: salt://myawesomefile # refers to /srv/salt/myawesomefile 
    user: root 
    group: root 
    mode: 640 

還要求媒體要管理文件。如果你談論應用程序相關的數據,用鹽來移動它們不是一個好主意。 IMO的其他方法,如NFS,GlusterFS或其他將用戶內容從應用程序中分離出來的方法將是更好的方法。