Chrome Pointer

2023年8月24日 星期四

ansible指令教學

 

冒死上传(已被开除)!Ansible自动化运维+shell编程,入门到进阶一套就够了!


ansible和playbook和role运维实战教程


ansible指令選項 ·

-m:要執行的模塊,默認為command · 
-a:模塊的參數 · 
-u:ssh連接的用戶名,默認用root,
在ansible.cfg中可以配置module和action


ansible 主機組 -m shell -a "echo Hello World"

vim etc/ansible/hosts 更改裡面的IP PORT PASSPORT

[web]127.0.0.1 ansible_port=2222 ansible_passport="123123"127.0.0.2 ansible_port=2222 ansible_passport="123123"127.0.0.3 ansible_port=2222 ansible_passport="123123"
這樣子的改法很耗時間,需要每一個個別添加port和passport,
於是可以改成如下。

[web:vars]  #宣告一個公共變數ansible_port=2222 ansible_passport="123123"
[web] #繼承公共變數127.0.0.[1:3]   #代表127.0.0.1 ~127.0.0.3寫法


*****-m 模塊介紹*****

💛ping

ansible all -m ping 查看目標機器是否運行中~? all是代表查看全部的目標機器。

ansible all -m ping


💛command 

ansible 主機組 -m command -a "需要批量執行的命令"
此為默認模塊,若不輸入-m 就會自動使用command,
它是簡單的模塊,若需要複雜的命令則要使用shell模塊。
command不能跑特殊符號,例如"> ! < ?",但是shell模塊可以。

ansible web -m command -a "hostname" #遠程查看主機名稱
ansible web -m command -a "hostname" 相等於 ansible web -a "hostname" #遠程查看主機名稱

ansible web -a "free -m" #遠程查看主機內存

💛shell

等於你在linux上任何的難的命令都可以跑,包括特殊符號。
不過還是建議找尋專有的模塊來跑。


****playbook*****


[web1]   #hosts
127.0.0.1
127.0.0.2

[web2]   #hosts
127.0.0.3
127.0.0.4

開始撰寫 copy_hosts.yml 這個 playbook 內容看看:

  - hosts: web1   #需要部屬的host
    tasks:
    - name: copy_to_another hosts   #幫這個過程命名
      copy:   #指定模組為copy
        src: /etc/hosts
        dest: /etc/hosts

把檔案從本機端src複製到 [web1]下面的127.0.0.1,127.0.0.2的dest裡面。

ansible-playbook  copy_hosts.yml      #下指令 - 安裝ansible playbook裡面的文件





tasks : 裡面開始寫 要做的任務

name :代表每個動作的名稱 這個是可以自己命名的

yum, copy, service :各個-m模塊名稱,你也可以寫其他模塊module,
像是command或shell,但要記得縮行~



TASK[install]
TASK[configure]
TASK[qidong]
#上面這些都是你在name輸入命名的

如果黃字代表RUN成功且有更改
綠字代表RUN成功,但沒有更動


透過 Groups of Groups 達到更複雜的組合 
將多個 Group 再組合成另一個 Groups of Groups。 

下面的範例中,只要在執行 playbook 時,
hosts 指定 ubuntu1404,即可在 vm1 ~ vm4 每一台都運行
因為 web 與 db 這兩個 Group 都屬於 ubuntu 這個 Groups of Groups。

[ubuntu1404:children]
web
db

[web]
vm1
vm2

[db]
vm3
vm4







沒有留言:

張貼留言

喜歡我的文章嗎? 喜歡的話可以留言回應我喔! ^^