AWX是一個開源的web應用,併爲ansible的任務引擎提供用戶接口和REST API。它是 ansible Tower的開源版本。ansible AWX容許咱們使用web接口去管理Ansible的playbooks、inventoris和調度任務。web
部署AWX:
https://blog.51cto.com/10616534/2405212
咱們將經過Ansible AWX的web界面經過運行一個Ansible playbook來完成一個簡單的hello world。
以下兩臺服務器(AWX平臺部署服務器和目標服務器):docker
192.168.100.100 AWX-server 192.168.100.2 test
首先,咱們先配置Ansible AWX的認證證書,用於在啓動和運行任務時對目標節點主機的認證管理。默認Ansible AWX支持多種認證憑證,包括常規服務器之間基於SSH的認證,Amazon Web Services,Google Computer Engine,OpenStack,Vault password,Source Control 等等。
如:
爲了建立一個新的認證憑證,在AWX web平臺點擊左側菜單的Credentials,接着點解頁面右側的+按鈕來添加一個Credentials, 以下圖所示:shell
填寫Credentials名稱以及描述,選擇Credentials類型,選擇比較簡單的Machine,它容許經過SSH認證去管理服務器。它支持兩種認證方式:基於密碼和基於祕鑰。
咱們將採用基於祕鑰的認證方式,所以須要填寫系統的用戶名和用戶的SSH私鑰:以下圖:
最後點擊右邊的save保存,將會成功建立一個新的Machine類型的Ansible AWX credentials。服務器
經過Inventories定義經過Ansible AWX管理的主機羣組。Inventories容許你爲幾個服務器建立一個組,而且還能很方便的去管理不一樣的服務器和它們所依賴的環境變量。爲了去管理操做服務器,咱們必須去建立一個新的inventory group 而且給這組中添加服務器。
一樣,點擊ansible AWX左側的菜單Inventories,接着點擊右邊的+按鈕,並選擇Inventory:
以下所示:先填寫名稱和描述,並點擊保存
接着點解頁面上方的主機(HOSTS)按鈕,並點擊右側的+,爲這個inventory添加主機,如圖所示:
以下圖所示:填寫主機名( HOST NAME),描述(DESCRIPTION),而且在VARIABLES中,填入目標主機的IP地址 "ansible_host: 192.168.100.2",並點擊保存(SAVE)。
接着咱們在頁面下方能夠看到咱們剛纔建立的inventory中新添加的hosts,爲了確保host的配置,咱們能夠經過ping命令來檢查該host,選中添加的主機前邊的複選框,而且點擊RUN COMMANDS按鈕。
接着選擇ping模塊(MODILE-->Choose a module--ping),接着選擇咱們的第一步中建立的Credentials(認證)方式,而後點解右邊的LAUNCH按鈕
接着咱們會看到一下執行結果的頁面,如圖所示:
至此,成功建立了一個新的inventory,而且添加了指定的目標主機(服務器)。ide
在於AWX中,Projects的做用至關於對一個Ansible Playbook庫的管理,他能夠對本地目錄或者對相似GIt、Svn(Subversion)及RedHat Insights中的Ansible Playboos進行管理。
建立一個新的Projects,點擊左側的Projects菜單按鈕,點擊右側的+,進行建立,以下圖:
填寫建立Project的名稱以及描述(可選),並選擇一個SCM TYPE,咱們這裏選擇 Manual類型(選擇本地目錄),指定項目的基礎路徑(PROJECT BASE PATH),並在項目的基礎路徑下選擇一個存放playbook的目錄(說明:即若是SCM TYPE類型選擇Manual,則項目的基礎路徑將指向本地目錄,此時須要在這個目錄下根據本身的部署操做需求建立子目錄,並將指定的playbook文件放在本身建立的目錄中,以供在建立項目(Project是使用)),最後點擊右側的save保存,如圖:
注意:若是在建立Project時須要選擇SCM類型爲Manual,則/var/lib/awx/projects是Ansible playbooks默認的項目目錄,若是你部署AWX是採用的是Docker形式部署的,則須要開啓project_data_dir選項。例如經過docker-compose安裝部署的AWX,則能夠修改awx/installer目錄下的inventory文件,以下:3d
任務模板其實就是爲了運行Ansible Playbooks,建立一個新的模板須要選擇目標主機(在inventory重定義的,選擇本身新建立的inventory)、認證方式(在Credentials中選擇的方式,即選擇本身新建立的Credentials)、以及選擇project中指定的playbook文件。
點擊左邊的Template按鈕,點擊右邊的+,而且選擇Job template選項:
填寫新建立任務模板的名字和描述,而且選擇以前建立過的INVENTORY、CREDENTIAL和PROJECT,而後保存,最後就能夠經過模板任務去運行指定的playbooks來進行部署。
hello_world.yml任務是在目標主機上輸出一個helloword到指定的文件中:code
--- - hosts: all tasks: - name: "helloworld" shell: echo "Hello World" `date` by `hostname` > /tmp/hello.log
咱們能夠經過運行的job template,來指定Projects中對應的playbooks,並在Invertory指定的目標主機上進行部署。
點擊右側的Templates,而後找到指定的job Template,而後點擊右側的圖標來運行該任務。
運行結果以下:server
說明成功的在指定的目標主機上執行了指定的操做。blog