ansible(3)ansible服務的簡單部署及ansible-playbook的簡單使用

ansible模塊命令的執行

ansible執行的過程
在這裏插入圖片描述

先看下配置文件

vim ansible.cfg
[defaults]
inventory = ./hosts
remote_user = devops

[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

vim hosts
172.25.62.2
[db]
172.25.62.3

[webserver:children]
test
db

[webserver:vars]
http_port=80

** ansible默認變量的檢索位置是
1 inventry文件 默認/etc/ansible/hosts
2 playbook 中vars定義的區域
3 roles中vars目錄下的文件
4 roles 同級目錄group_vars和hosts_vars目錄下的文件
**

在這裏插入圖片描述**ansible正則
ansible “*” -m ping
對多個主機同時執行時,相互用冒號隔開
ansible “web1:web2” -m ping
**

**
常用模塊:
1.copy模塊:
ansible test -m copy -a “src=apache/index.html dest=/var/www/html/index.html” 將當前目錄下的文件拷到目標主機指定的位置
2.file模塊:
ansible test -m file -a "dest=/tmp/hosts mode=600 owner=root group=root"遠程創建文件,修改文件和屬性
ansible test -m file -a “test=/tmp/dir stste=absent”
3.yum模塊:
ansible test -m yum -a “name=hhtpd state=present” 安裝軟件
ansible test -m yum -a “name=hhtpd state=absent” 卸載軟件
4.service模塊:
ansible test -m service -a “name=hhtpd state=start”
ansible test -m service -a “name=hhtpd state=restart” 配置服務狀態的模塊
ansible test -m service -a “name=hhtpd state=stopped”
5.user模塊:
ansible test -m user -a “name=qs pqssword=密碼”
ansible test -m user -a “name=qs shell=/bin/bash groups=user,sheel append=yes state=present”
6.mysql_user模塊;
ansible test -m mysql_user -a “name=qs password=密碼 priv=.:celect host=’%’ stste=present”
遠程主機需要安裝MYSQL-python
**
在這裏插入圖片描述

ansible命令安裝httpd

在這裏插入圖片描述看看service模塊說明
直接翻倒下面看例子

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

這是用命令安裝和啓動httpd
比較麻煩

在這裏插入圖片描述

可以看到已經啓動

在這裏插入圖片描述
利用copy模塊將默認發佈文件複製過去

在這裏插入圖片描述

在這裏插入圖片描述

ansible命令安裝mariadb

用yum模塊安裝mariadb文件
在這裏插入圖片描述

在server2上看看有沒有裝上包
在這裏插入圖片描述
不知道用那個模塊,哪個命令時,可以如圖,找找幫助
開啓mariadb

在這裏插入圖片描述
**由於hosts文件內test羣組只包含server2,
所以來server2上查看端口
**

在這裏插入圖片描述

**
在server1上 推,給test羣組,
由於安裝mariadb還有依賴性,再裝一個基於python環境的包
並且基於mysql_db 插入westos表**
在這裏插入圖片描述

由於hosts文件內test羣組只包含server2,server2登陸數據庫查看
在這裏插入圖片描述
命令創建用戶,用的模塊如圖mysql_user 並授權westos下的所有東西都給qs用戶

在這裏插入圖片描述

ansible-playbook的使用

**
ansible-playbook適用於解決複雜環境的任務,相當於linux的shell
ansible的模塊很多可以用ansible-doc來查看
ansible-doc -l #顯示所有模塊
ansible-doc yum ##顯示yum模塊的幫助
**

爲了不混亂,我們在devops的家目錄下的ansible目錄再新建一個apache目錄,專門放http的文件

在這裏插入圖片描述先設置一個.vimrc的文件 裏面設置當文件結尾時是yml結尾時,tab鍵是兩個空格
在這裏插入圖片描述
進入apache專屬文件夾,開始寫yml文件
在這裏插入圖片描述

**yml格式有明確要求,空格不能多,不能少,
第一行以—開始,表明YMAL文件開始
#表示註釋
列表元素以-開頭後接一個空格,同一列表元素縮進相同
eg:
---- hosts: test #選擇你要推送的羣組
tasks: #步驟
- name: install apache #起個這個步驟的名字
yum: #調用yum模塊
name: httpd #yum要安裝的軟件名
state: present #狀態是安裝
**

縮進一定要正確

---- hosts: test
  tasks:
    - name: install apache
      yum:
        name: httpd
        state: present

在這裏插入圖片描述
調用的時候要用ansible-playbook yml文件地址來調用
注意:
此時我在apache目錄下
playbook執行時會默認去家目錄下的ansible讀東西
所以你推的時候得指明你的yml文件在apache下的install.yml

在這裏插入圖片描述
server2看看效果

在這裏插入圖片描述
刪掉之前做實驗的文件

在這裏插入圖片描述
查看火牆狀態

在這裏插入圖片描述
再次完善推的文件,加上配置火牆允許httpd

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述在後面添加測試httpd的代碼,訪問172.25.62.2並返回參數

在這裏插入圖片描述

在這裏插入圖片描述
那麼如何配置http呢
現在配置主機上裝一個apache,目的是獲取httpd的配置文件,將配置文件複製到ansible當前目錄下,修改你想修改的內容,運用copy模塊,推給相應主機就可以了。

在這裏插入圖片描述
在這裏插入圖片描述
將端口修改爲8080
在這裏插入圖片描述

添加觸發器是以爲修改給了配置文件要使之生效,
在這裏插入圖片描述

此時要看看ansible目錄下有啥,apache目錄下有啥

在這裏插入圖片描述

在這裏插入圖片描述

端口改爲8080

在這裏插入圖片描述
改個變量試試

在這裏插入圖片描述

也可以用template模塊,和copy模塊差不多,注意使用觸發器時前面要寫notify(觸發器名稱) 後面handlers的名字要和notify後面的觸發器名稱對應
在這裏插入圖片描述
**想看看那個文件優先級高在hosts設置變量對應的值爲80 **

在這裏插入圖片描述
報錯原因是沒有在apache下找到模板文件
在這裏插入圖片描述
訪問,這次用的是db羣組

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

看看誰的優先級高
hosts設置爲8080
yml開頭定義變量爲80

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

還是文件開頭管用 嘿嘿

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章