ansible 基本使用 1

2022-06-21 03:30:15 字數 2719 閱讀 3698

ansible  當前主流的批量配置管理工具,相比於saltstack 它是無agent 模式,基於ssh 去遠端管理主機。有密碼和金鑰兩種方式遠端認證方式。

yum -y install  ansible  (前提是有epel 源,如果沒有需要安裝)

pip install ansible

github原始碼包安裝

環境服務端

python  2.6/2.6.3.x

openssl

centos debian redhat

被管理端

openssl    python  2.6/2.6.3.x

playbook      #劇本

inventory      #主機清單

modules      #功能模組

plugins        #外掛程式

api         #介面

[defaults]

# some basic default values...

#inventory = /etc/ansible/hosts                      #預設的主機清單檔案

#forks = 5                                #併發執行任務數量,預設5

#host_key_checking = false                            #是否驗證遠端主機的指紋資訊,如果要禁用驗證需要去掉注釋

#sudo_user =root                           #是否提權,新版本用的是 become = root

#timeout = 10                                #ssh 超時時間

#remote_port = 22

#log_path = /var/log/ansible.log                    #日誌路徑,啟用的話,注釋去掉

#private_key_file = /path/to/file                    #金鑰登入方式,預設關閉

######## ex 1

: 未分組的主機清單,預設屬於all 組,可以使用主機名也可以使用ip

## green.example.com

## blue.example.com

## 192.168.100.1

## 192.168.100.10

######## ex

2: 根據主機使用者分組,例如一下清單主機都屬於webservers ## [webservers]

## alpha.example.org

## beta.example.org

## 192.168.1.100

## 192.168.1.110

# 如果你的主機名字有規律的,可以通過這種方式表示多個主機www.001.example.com www.002.example.com ...

## www[

001:006

].example.com

######## ex

3: 資料庫組

## [dbservers] ##

## db01.intranet.mydomain.net

## db02.intranet.mydomain.net

## 10.25.1.56

## 10.25.1.57

可以通過給主機或者主機組定義變數,在遠端執行命令的時候使用該變數

vi /etc/ansible/hosts

##k8s-node

[node]

10.11.118.164 ansible_ssh_user=root ansible_ssh_pass=asdf http_port=80      #針對主機新增變數

10.11.118.165 ansible_ssh_user=root ansible_ssh_pass=asdf

[node:vars]      #針對主機組新增變數

tips:主機後面的變數優先順序大於主機組中相同變數值

vi /etc/ansible/group_vars/etcd.yml        #以主機組名字名命的檔案內定義變數

server_name: k8s-etcd                

ansible etcd  -a "echo }"

tips: 當兩個主機組中的主機有重複,然後兩個主機組的變數定義的不同,那麼前面第一次生效的變數不會被後面定義的覆蓋

使用copy 模組複製檔案報錯

"

msg": "

destination /usr/local/bin not writable

"

原因:普通使用者沒有許可權寫入此目錄

解決:vi /etc/ansible/ansible.cfg

[defaults]

sudo_user      = root

[privilege_escalation]

become=true

become_method=sudo

become_user=root

解決方法:

ansible基本使用

ansible是個配置管理工具,可以批量處理一些任務。ansible只需要依賴ssh即可使用,而不需要在受管主機上安裝客戶端工具。ansible具有冪等性,即以結果為導向。比如,當我們拉取檔案到本地時,如果本地有該檔案則不再拉取,如果本地沒有該檔案則拉取。使用ansible需要滿足兩個基本條件 安裝...

Ansible基本使用

角色 作業系統 網路位址 管理主機 ubuntu 14.04 tls 192.168.200.250 託管節點 ubuntu 16.04 tls 192.168.200.11 192.168.200.12 sudo apt get install software properties common...

ansible的安裝及基本使用

1.安裝ansible 如果沒有版本和別的要求,這裡直接使用yum安裝 yum y install ansible 檢視版本 root 0006 ansible version ansible 2.4.2.0 config file etc ansible ansible.cfg executabl...