標籤:sha file 資訊 金鑰組 記錄 同步機制 ase window 相關資訊
ansible簡介
| 主機名稱 |
IP地址 |
作業系統 |
| ansible管理端 |
192.168.195.147 |
CentOS7 |
| 被管理端1 |
192.168.195.162 |
CentOS7 |
| 被管理端2 |
192.168.195.163 |
CentOS7 |
安裝部署
首先在管理主機上安裝Ansible
yum install -y epel-release //安裝epel源
yum install ansible -y
ansible --version //查看ansible版本
yum install tree -y
tree /etc/ansible/ //樹狀結構展示檔案夾
/etc/ansible/
├── ansible.cfg #ansible的設定檔
├── hosts #ansible的主倉庫,用於儲存需要管理的遠程主機的相關資訊
└── roles #角色
修改ansible設定檔hosts,添加被管理主機清單
cd /etc/ansible
vi hosts //配置主機清單
[webserver]
192.168.195.162
[mysql]
192.168.195.163
設定SSH金鑰組,並將公開金鑰推送給被管理主機
ssh-keygen -t rsa #產生密鑰
ssh-copy-id [email protected]
ssh-copy-id [email protected] //配置金鑰組驗證
---------免互動代理--------------
ssh-agent bash
ssh-add
ansible命令列模組
1,------command模組------
命令格式:ansible [主機] [-m 模組] [-a args]
ansible-doc -l //列出所有已安裝的模組 註:按q退出
ansible-doc -s yum //-s列出yum模組描述資訊和操作動作
ansible 192.168.195.162 -m command -a ‘date‘ //指定ip執行date
ansible webserver -m command -a ‘date‘ //指定分類執行date
ansible mysql -m command -a ‘date‘
ansible all -m command -a ‘date‘ //所有hosts主機執行date命令
ansible all -a ‘ls /‘ 如果不加-m模組,則預設運行command模組
2,-----cron模組------
兩種狀態(state):present表示添加(可以省略),absent表示移除。
ansible-doc -s cron //查看cron模組資訊
ansible webserver -m cron -a ‘minute="/1" job="/bin/echo heihei" name="test cron job"‘
ansible webserver -a ‘crontab -l‘
ansible webserver -m cron -a ‘name="test cron job" state=absent‘ //移除計劃任務,假如該計劃任務沒有取名字,name=None即可
3,-----user模組------
user模組是請求的是useradd, userdel, usermod三個指令
ansible-doc -s user //查看user模組的用法
ansible mysql -m user -a ‘name="test01"‘ //建立使用者test01
ansible mysql -m command -a ‘tail /etc/passwd‘
ansible mysql -m user -a ‘name="test01" state=absent‘ //刪除使用者test01
4,-----group模組-----
group模組請求的是groupadd, groupdel, groupmod 三個指令。
ansible-doc -s group //查看group模組的用法
ansible mysql -m group -a ‘name=mysql gid=306 system=yes‘ //建立組為mysql
ansible mysql -a ‘tail /etc/group‘ //查看新建立的組mysql
ansible mysql -m user -a ‘name=test01 uid=306 system=yes group=mysql‘ //建立test01使用者,並指定組為mysql,
ansible mysql -a ‘tail /etc/passwd‘ //查看建立的使用者test01
ansible mysql -a ‘id test01‘ //查看使用者test01的資訊
5,------copy模組--------
ansible-doc -s copy
ansible mysql -m copy -a ‘src=/etc/fstab dest=/opt/fstab.back owner=root mode=640‘ //檔案複製,將fstab複製到/opt下命名為fstab.back,並設定許可權為640,指定所有者為root
ansible mysql -a ‘ls -l /opt‘ //查看/opt目錄下的檔案,是否有新檔案產生
ansible mysql -a ‘cat /opt/fstab.back‘ //查看複製的檔案內容
ansible mysql -m copy -a ‘content="hello heihei!" dest=/opt/fstab.back‘ //將hello heihei!寫入/opt/fstab.back 也可以建立新檔案
ansible mysql -a ‘cat /opt/fstab.back‘ //再次查看其內容,發生替換
6,------file模組--------
ansible-doc -s file
首先建立一個測試使用者mysql,並加入mysql組中
ansible mysql -m user -a ‘name=mysql system=yes‘
ansible mysql -m group -a ‘name=mysql system=yes‘
ansible mysql -m file -a ‘owner=mysql group=mysql mode=644 path=/opt/fstab.back‘ //修改檔案的屬主屬組許可權等
ansible mysql -m file -a ‘path=/opt/fstab.link src=/opt/fstab.back state=link‘ //設定/opt/fstab.link為/opt/fstab.back的連結檔案
ansible mysql -m file -a "path=/opt/fstab.back state=absent" //刪除一個檔案
ansible mysql -m file -a "path=/opt/test state=touch" 建立一個檔案
7,-----ping模組-------
ansible all -m ping //測試被管理主機是否線上
8,-----yum模組-----
ansible-doc -s yum
ansible mysql -m yum -a ‘name=httpd‘ //yum安裝httpd
[[email protected] ~]# rpm -q httpd
ansible mysql -m yum -a ‘name=httpd state=absent‘ //卸載httpd
9,-----service模組--------
ansible-doc -s service
[[email protected] ~]# yum -y install httpd
ansible webserver -m service -a ‘enabled=true name=httpd state=started‘ //啟動httpd服務
[[email protected] ~]# systemctl status httpd //在webserver上查看httpd是否開啟
10,------shell模組-----
ansible-doc -s shell
ansible mysql -m shell -a ‘echo abc123|passwd --stdin mysql‘ //建立使用者使用無互動模式給使用者佈建密碼
11,------script模組---------
ansible-doc -s script //在ansible管理端編輯一個簡單的shell指令碼
vi test.sh
#!/bin/bash
echo "hello ansible from script"> /opt/script.txt
chmod +x test.sh //賦予執行許可權
ansible mysql -m script -a ‘test.sh‘ //使用script模組,將指令碼在mysql上執行
[[email protected] ~]# cat /opt/script.txt //在mysql上查看指令碼執行結果
12,-----setup模組-------
ansible-doc -s setup
ansible mysql -m setup //擷取mysql組主機的facts資訊
ansible作為一個自動化營運工具還有很多模組,本篇文章只是介紹一些常用的模組。
自動化營運之Ansible安裝及基本模組應用