Ansible中使用的不同角色(使用者,Ansible工具集,作用對象)
lnventory是Ansible管理主機資訊的配置檔案,預設存放在/etc/ansible/hosts中。
Ansible工具集包含(lnventrol,Modules,Pluginx和APL)
lnventrol:管理主機的清單
Modules:執行指令子產品
APl:接口
Ansible:核心執行工具
直接實驗!
三台linux伺服器,其中一台Ansible伺服器。
分别為192.168.1.1 192.168.1.2 192.168.1.3

以一台為例,關閉防火牆,selinux,
伺服器上配置如下:
一,yum安裝Ansible
二,進入配置檔案加上節點ip
vim /etc/ansible/hosts
管理的主機ip
三,建立ssh免互動式登入(就是直接登入不需要密碼)
(1)從ansible主機上生成密鑰對
(2)複制公鑰到倆個要管理的主機(這裡就示範一個)
然後輸入:ssh 192.168.1.2直接就能切換過去,不需要密碼
(3)檢查所有之際是否存活,指令如下
·一般會用三種顔色來表示執行的結果:紅色,綠色
其中:紅色表示執行過程有異常,表示執行後目标有變化,綠色表示執行成功且沒有對目标主機做修改。
(4)command子產品
command子產品在遠端主機執行指令,不支援管道符,重定向等shell的特性
顯示出倆個主機的使用者
(5)shell子產品
shell子產品在遠端主機執行指令,和command子產品的差別在于它支援shell特性,如管道符,重定向等
web是清單裡面包括了倆個主機(可以多個,在清單裡添加就可以)在倆太主機/tmp下建立了倆個HELLOW,txt的檔案
(6)copy子產品
用于複制指定主機的檔案到别的主機
dest:指出目标檔案的位置,
src:指出源檔案的路徑
在本主機上建立個目錄直接複制到倆個節點上的/tmp下
(7)hostname子產品
用于遠端管理主機的主機名
把主機名改為了asd
(8)yum子產品
用于對遠端主機管理程式包前提要安裝的主機必須配置好yum,這隻是提供指令遠端,比如安裝http,指令如下,
state=(present,latest,absent )(安裝,安裝最新,解除安裝)
(9)service子產品
用與管理遠端主機上的服務,開啟,關閉,檢視或開機自啟
(10)user子產品
用于管理遠端主機的使用者賬号比如建立使用者,uid号,使用者的組,使用者的附加組
四,Playbook配置檔案
編寫腳本來管理遠端主機
ansible腳本必須對齊
提前先修改一下配置檔案:vim /etc/ansible/hosts
标準的
這是文法檢測,顯示下面的意思是沒有錯誤
這是建立使用者的腳本,如下:---
hosts: web1
remote_user: root
tasks:
name: adduser
user: name=user2 state=present
tags:
aaa
name: addgroup
group: name=root system=yes
bbb
hosts: web2
name: copy file to web
copy: src=/etc/passwd dest=/home
ccc
...
執行腳本
五,觸發器
編寫腳本更改遠端主機的端口号并重新啟動
name: change port
command: sed -i 's/Listen\ 80/Listen\ 8080/g' /etc/httpd/conf/httpd.conf
notify:
restart httpd server
handlers:
name: install mariadb
yum: name=mariadb-server state=present
name: move config file
shell: "[ -e /etc/my.cnf ]&& mv /etc/my.cnf /etc/my.cnf.bak"
name: provide a new config file
copy: src=my.cnf dest=/etc/my.cnf
name: reload mariadb
shell: systemctl restart mariadb
name: create database testdb
shell: mysql -u root -e "create database testdb;grant all on testdb.* to'test'@'192.168.8.%' identified by 'test123';flush privileges;"
restart mariadb
句号表示 -
然後進入hanglers檔案夾中編寫和腳本
内容為
name: restart mariadb
service: name=mariadb state=restarted
再進入files檔案夾中複制mysql配置檔案
最後進入ansible檔案夾中建立腳本
最後啟動腳本
倆個主機就有mysql資料庫裡面有一個testdb的表
實驗完成