自動化運維-ansible入門篇

1.ansible配置

什麼是Ansible
  • IT自動化工具
  • 依賴於現有的操做系統憑證來訪問控制遠程機器
  • 簡單易用、安全可靠

Ansible能夠完成哪些任務python

  • 配置系統
  • 開發軟件
  • 編排高級的IT任務

Ansible特色mysql

  • 輕量級
  • 易學習
  • 操做靈活
Ansible執行流程

image-20190828152118020

image-20190828152147492

Ansible安裝配置

Ansible安裝方式web

  • python pip
  • 軟件源
  • Ansible源碼

python pip安裝sql

  • sudo pip install ansible

優勢shell

  • 簡單、快速、跨平臺

軟件源安裝ubuntu

  • sudo yum install peel-release && sudo yum install ansible

優勢安全

  • 簡單、快捷、跨平臺

軟件源安裝(ubuntu)ssh

  • $ sudo apt-get install software-properties-common
  • $ sudo apt-add-repository spa:ansible/ansible
  • $ sudo apt-get update
  • $ sudo apt-get install ansible

優勢工具

  • 不會出現編譯或者依賴問題

Ansible配置學習

  • host配置

    host文件: /etc/ansible/hosts

  • 配置內容:

    [test]

    192.168.1.1

配置遠程登陸

  • 添加公鑰:

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.1

連通測試

  • 運行Ansible命令:

    ansible all -m ping

  • 正確的運行結果:

    192.168.1.1 | SUCCESS => {

    ​ "changed": false,

    ​ "ping": "pong"

    }

2.Ansible基本使用

Ad-hoc是什麼
  • 命令行工具
  • 適用於業務變動
  • 所見即所得

Ad-hoc怎麼用

舉例說明:

  • 列出目標主機目錄

    ansible test -m shell -a "ls /root" --user=root

Ansible help message

  • 普通可選參數
  • 連接目標主機相關參數
  • 權限控制相關參數
Ansible Inventory

Inventory是什麼

  • 定義主機關係的文件
  • 默認路徑爲/etc/ansible/hosts
  • 文件內容格式爲ini

Inventory主機組

[組名]
192.168.1.1
192.168.1.2

Inventory主機別名

jumper ansible_ssh_port = 22
ansible_ssh_host = 192.168.1.1

Inventory連接參數

ansible_ssh_host
#將要鏈接的遠程主機名,與你想要設定的主機別名不一樣的話,可經過此變量設置

ansible_ssh_port
#ssh端口號,若是不是默認的端口號,經過此變量設置

ansible_ssh_user
#默認的ssh用戶嗎

ansible_ssh_pass
#ssh密碼(這種方式並不安全,咱們強烈建議使用 --ask-pass或SSH)

ansible_sudo_pass
#sudo密碼(這種方式並不安全,咱們強烈建議使用 --ask-sudo-pass)
Inventory批量主機組
[websevers]
www[01:50].example.com
[databases]
db-[a:f].example.com
Ansible基本使用
  • 瞭解Ansible使用
  • 瞭解Ansible模塊查找使用方法

實戰

  • 安裝mysql

    ansible test -m yum -a "name=mariadb-server state=latest"
    #安裝使用yum模塊  name參數是必須的,服務名稱,  state參數是可選的,latest表示安裝
  • 啓動服務/暫停服務

    ansible test -m systemd -a "name=mariadb state=started"
    #啓動mariadb服務 
    ansible test -m systemd -a "name=mariadb state=stopped"
    #關閉mariadb服務
  • 查看mysql服務是否啓動

    ansible test -m shell -a "ps -ef|grep mysql"
相關文章
相關標籤/搜索