Ansible安裝及簡單使用

簡介:

ansible是新出現的自動化運維工具,基于Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。ansible是基于模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種框架。主要包括:

(1)、連接插件connection plugins:負責和被監控端實現通信;

(2)、host inventory:指定操作的主機,是一個配置文件里面定義監控的主機;

(3)、各種模塊核心模塊、command模塊、自定義模塊;

(4)、借助于插件完成記錄日志郵件等功能;

(5)、playbook:劇本執行多個任務時,非必需可以讓節點一次性運行多個任務。

架構:

blob.png

連接其他主機默認使用ssh協議

host inventory:主機組名稱

安裝ansible:

[root@stu ~]# yum install ansible-1.5.4-1.el6.noarch.rpm

查看生成的文件:

/etc/ansible
/etc/ansible/ansible.cfg   #配置文件
/etc/ansible/hosts   #主機庫(host inventory)
/usr/bin/ansible   #主程序
/usr/bin/ansible-doc   #文檔
/usr/bin/ansible-playbook   #劇本

命令:

ansible <host-pattern> [-f forks] [-m module_name] [-a args]

    host-pattern:host inventory文件的一個組名,可以為all

    -f forks:并行處理的個數,默認為5

    -m module_name:模塊名,默認為command

    -a args:參數

ansible-doc:

    -l:查看模塊列表

    -s:查看相關模塊參數

實驗:

一臺控制節點(安裝ansible),三臺被控制節點

控制節點:

1、名稱解析
[root@stu ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.20 stu
192.168.0.21 node1
192.168.0.22 node2
192.168.0.23 node3
2、建立互信
[root@stu ~]# ssh-keygen -t rsa  -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
5e:b9:38:77:4f:d9:e9:ae:94:cd:29:4b:c5:0f:1a:2b root@stu
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|           .  .  |
|        S o . .o |
|       . o . +=++|
|        + E +=o=o|
|         o ooo+  |
|             o+o |
+-----------------+
[root@stu ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1
[root@stu ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2
[root@stu ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node3
3、定義主機組
[root@stu ~]# vim /etc/ansible/hosts
:.,$s/^\([^[:space:]#]\)/#\1/g   #所有以非空白字符或#開頭的行都加上注釋
[webservers]
node1
node2
[dbservers]
node2
node3

ping測試:

blob.png

date測試:

blob.png

copy測試:(可以使用ansible-doc -s copy查看)

[root@stu ~]# ls
anaconda-ks.cfg  ansible-1.5.4-1.el6.noarch.rpm  install.log  install.log.syslog
[root@stu ~]# ansible dbservers -m copy -a "src=/root/ansible-1.5.4-1.el6.noarch.rpm dest=/tmp/"

blob.png

檢查:

blob.png

cron測試:

[root@stu ~]# ansible all -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 192.168.0.20"'

blob.png

檢查:

blob.png

group測試:

blob.png

檢查:

blob.png

yum測試:

[root@stu ~]# ansible all -m yum -a "state=present name=corosync"

檢查:

blob.png

service測試:

blob.png

blob.png

blob.png

blob.png

劇本:

劇本需要依賴yaml語言來工作,后綴一般為.yaml。

其結構(Structure)通過空格來展示,序列(Sequence)里的項用"-"來代表,Map里的鍵值對用":"分隔。下面是一個示例。

實驗1:

[root@stu ~]# vim test.yaml
- hosts: all
  remote_user: root
  tasks:
   - name: add a group
     group: gid=1000 name=testgroup system=no
   - name: excute a command
     command: /bin/date

blob.png

是把一個任務在所有主機都執行一遍,再執行第二個任務

handler:適用于更改配置文件后,讓其生效

實驗2:

[root@stu ~]# cp /etc/httpd/conf/httpd.conf ./
[root@stu ~]# vim httpd.conf
Listen 8080
[root@stu ~]# vim web.yaml
- hosts: all
  remote_user: root
  tasks:
   - name: ensure apache is the latest version
     yum: state=latest name=httpd
   - name: apache configure file
     copy: src=/root/httpd.conf dest=/etc/httpd/conf/httpd.conf force=yes
     notify:
      - restart httpd   #此處和下面的要一樣
  handlers:
   - name: restart httpd
     service: name=httpd state=restarted

blob.png

驗證8080:(不支持管道)

blob.png

blob.png

其他知識:

找rpm可以在以下兩個位置:

http://rpmfind.net/

https://pkgs.org/



原創文章,作者:黑白子,如若轉載,請注明出處:http://www.www58058.com/30693

(0)
黑白子黑白子
上一篇 2016-08-07
下一篇 2016-08-08

相關推薦

  • Redhat kickstart 無人值守安裝

                       Redhat kickstart 無人值守安裝 一、PXE       PXE工作于Client/Server的網絡模式,支持可以通…

    系統運維 2016-09-21
  • lvs-dr模型

    dr 模型 1、?directory ,node1 ,node2 三臺主機都是一塊網塊, 并且網卡都為橋接,且node1,nod2,不需要指定網關 在director主機中執行   #ip addr add 192.168.1.20/32 dev ens33 # ipvsadm -A -t 192.168.1.20:80 -s rr # ipvsa…

    Linux干貨 2017-08-26
  • 私有IP網子網掩碼劃分原則及計算方法

    私有IP網子網掩碼劃分原則及計算方法 最好記下的二進制轉換十進制 00000000 0 00000001 1 00000010 2 00000100 4 00001000 8 00010000 16 00100000 32 01000000 64 10000000 128 11000000 192 11100000 224 11110000 240 1111…

    Linux干貨 2017-05-02
  • 用戶和組

    用戶和組 touch /etc/nologin     系統做維護時不想普通用戶登錄,就可以創建這個文件,也可以在里面寫一些提示。     維護完之后刪除這個文件就可以自動恢復      touch /run/nolog…

    Linux干貨 2016-08-03
  • N25第二周作業

    第二周 一、文件管理命令 復制命令:cp 命令格式   cp [OPTION]… [-T] SOURCE DEST   cp [OPTION]… SOURCE… DIRECTORY   cp [OPTION]…

    Linux干貨 2016-12-09
  • SDCC 2017互聯網運維開發實戰峰會上海站

    3月17日-19日,由CSDN重磅打造的互聯網運維開發實戰峰會、數據庫核心技術與應用實戰峰會和互聯網應用 架構實戰峰會將在上海舉行。 作為SDCC 2017(中國軟件開發者大會)系列技術峰會的一部分,秉承干貨實料(案例)的內容原則。 這三場峰會將邀請業內頂尖的架構師和技術專家,共同探討運維工具研發與實踐、運維自動化系統的構建、大數據與運維…

    Linux干貨 2017-02-11
欧美性久久久久