Ansible篇-Ansible使用說明「安裝+術語+配置目錄+配置文件等」

1 引言

Ansible中文官網:https://ansible-tran.readthedocs.io/en/latest/docs/intro_installation.html
上面詳細闡述了ansible的相關內容,是我的主要參考。

2 安裝

2.1 安裝之前

  1. Ansible默認通過 SSH 協議管理機器
  2. 若你希望使用Ansible的最新版本,並且你使用的操作系統是 Red Hat Enterprise Linux ™, CentOS, Fedora, Debian, Ubuntu,我們建議使用系統的軟件包管理器
  3. 目前,只要管理機器上安裝了 Python 2.6 或 Python 2.7 (windows系統不可以做控制主機),都可以運行Ansible.
  4. 管理機的系統可以是 Red Hat, Debian, CentOS, OS X, BSD的各種版本,等等.
  5. 被管理的機器也需要安裝 Python 2.4 或以上的版本.如果版本低於 Python 2.5 ,還需要額外配置安裝支持,詳見官網【installation】

2.2 安裝方式

2.2.1 源碼安裝

$ git clone git://github.com/ansible/ansible.git --recursive
$ cd ./ansible
$ source ./hacking/env-setup
#如果沒有安裝pip, 請先安裝對應於你的Python版本的pip:
$ sudo easy_install pip
$ sudo pip install paramiko PyYAML Jinja2 httplib2 six
#注意,當更新ansible版本時,不只要更新git的源碼樹,也要更新git中指向Ansible自身模塊的 “submodules” (不是同一種模塊)
$ git pull --rebase
$ git submodule update --init --recursive
#一旦運行env-setup腳本,就意味着Ansible從源碼中運行起來了.默認的inventory文件是 /etc/ansible/hosts.inventory文件也可以另行指定 (詳見 Inventory文件) :
$ echo "127.0.0.1" > ~/ansible_hosts
$ export ANSIBLE_HOSTS=~/ansible_hosts
#測試一條ping命令:
$ ansible all -m ping --ask-pass
#也可以使用命令 “sudo make install”

2.2.2 yum安裝

# install the epel-release RPM if needed on CentOS, RHEL, or Scientific Linux
$ sudo yum install ansible

2.2.3 配置ssh和hosts

  • 配置免密登錄
$ sudo ssh-keygen
$ sudo ssh-copy-id -i ~/.ssh/id_rsq.pub root@到被管理的主機ip
  • 將被管理的主機添加到hosts中,或者在/etc/ansible/inventory/下面創建文件來添加被管理的主機。如何使用inventory後面再說,一般也推薦使用inventory管理主機
vim /etc/ansible/hosts
192.168.0.1
192.168.0.2
192.168.0.3

3 配置文件目錄

  • 目錄結構示意圖:

  • 在使用ansible時,通常需要在/etc/ansible/下這樣設計配置文件目錄:

1)主yml文件就放置在/etc/ansible下,比如install_zabbix_agent.yml
2)/etc/ansible/roles/目錄用來存放“角色”的配置文件,我們把具有特定功能的一組配置文件看作是一個“角色”。比如,安裝zabbix agent這個功能可以作爲一個角色,其配置文件均放置在roles/install_zabbix_agent/下,而上面的主yml文件install_zabbix_agent.yml會調用這個角色。這個不理解的話後面會有應用場景的例子。
3)/etc/ansible/vars/目錄用來存儲全局變量文件;

  • 那麼在/etc/ansible/roles/install_zabbix_agent/這個角色的目錄下通常會設置以下幾個目錄

1)tasks:用於存放實現功能的main.yml腳本
2)templates:用於存放main.yml腳本將會用到的配置文件模版,配置文件模版放置在這裏的好處就是可以直接使用template模塊對文件進行copy操作而無需寫絕對路徑。
3)defaults:用於存放默認的處理流程,如統一重命名主機的hostname
4)files:用於存儲需要用到的文件
5)vars:用於存儲角色的變量文件
6)handlers:用於存儲觸發yml腳本

4 ansible命令執行方式

有兩種:

  1. ad-hoc:主要用於臨時命令的執行
  2. ansible-playbook:是ad-hoc命令的集合,通過一定的規劃編排在一起,實現一個完整的功能。這也是我的常用方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章