1. 安裝ansibleyum install epel-release -y
yum install ansible -y
playbook是乙個不同於使用ansible命令列執行方式的模式,功能更強大更靈活。
playbooks使用步驟:
1.1 在playbooks 中定義任務:
- name: task description #任務描述資訊
module_name: module_args #需要使用的模組名字: 模組引數
1.2 ansible-playbook 執行 命令:
ansible-playbook site.yml
playbook是由乙個或多個"play"組成的列表。play的主要功能在於將事先歸為一組的主機裝扮成事先通過ansible中的task定義好的角色。
2. 使用playbook批量部署多台lamp環境
playbook常用資料夾作用:
files:存放需要同步到異地伺服器的原始碼檔案及配置檔案;
配置檔案; 處理程式
meta:角色定義,可留空;
tasks:需要進行的執行的任務; #任務
templates:用於執行lamp安裝的模板檔案,一般為指令碼;
vars:本次安裝定義的變數
3. 我們可以在ansible伺服器上安裝lamp環境,然後,再將配置檔案通過ansible拷貝到遠端主機3.1 安裝httpd軟體
3.2 安裝mysql
yum install mariadb-server mariadb -y
建立資料目錄-->授權-->修改mariadb配置檔案
mkdir -p /mysql/data chown -r mysql.mysql /mysql vim /etc/my.cnf
datadir=/var/lib/mysql --> datadir=/mysql/data
3.3 安裝php和php-mysql模組
yum install php php-mysql -y
3.4 提供php測試頁
vim /var/www/html/index.php --->apache預設家目錄
<?php
phpinfo()
?>
3.5 啟動apache,訪問本機httpd服務
將節點主機ip加入到配置檔案
[web-servers]
節點ip
ssh-keygen--->生成金鑰
ssh-copy-id root@節點ip
5. 使用playbook建立乙個lamp構建的任務
5.2 prepare(前期準備)角色的playbooks
vim /etc/ansible/lamp/roles/prepare/tasks/main.yml -->增加以下內容
- name: delete yum config
shell: rm -rf /etc/yum.repos.d/* #刪除原有的yum配置檔案
- name: provide yumrepo file
- name: clean the yum repo
shell: yum clean all #清除原有的yum快取資訊
- name: clean the iptables
shell: iptables -f #清除原有防火牆規則,不然後可能上不了網
5.3 構建httpd任務
yum: name=httpd state=present #安裝httpd服務
- name: provide test page
copy: src=index.php dest=/var/www/html #提供測試頁
- name: delete apache config
shell: rm -rf /etc/httpd/conf/httpd.conf #刪除原有的apache配置檔案,如果不刪除,下面的copy任務是不會執行的,因為當原始檔httpd.conf和目標檔案一樣時,copy命令是不執行的。如果copy命令不執行,那麼notify將不呼叫handler。
- name: provide configuration file
copy: src=httpd.conf dest=/etc/httpd/conf/httpd.conf #提供httpd的配置檔案
notify: restart httpd #當前面的copy複製成功後,通過notify通知名字為restart httpd的handlers執行。
5.4 構建httpd的handlers
5.5 部署mariadb資料庫
vim /etc/ansible/lamp/roles/mysql/tasks
- name: install the mysql
yum: name=mariadb-server state=present #安裝mysql服務
- name: mkdir date directory
shell: mkdir -p /mydata/data #建立掛載點目錄
- name: provide configration file
copy: src=my.cnf dest=/etc/my.cnf #提供mysql的配置檔案
- name: chage the owner
shell: chown -r mysql:mysql /mydata/* #更改屬主和屬組
- name: start mariadb
service: name=mariadb enabled=yes state=started #啟動mysql服務
5.6 構建php任務
/etc/ansible/lamp/roles/php/tasks/main.yml
- name: install php
yum: name=php state=present #安裝php
- name: install php-mysql
yum: name=php-mysql state=present #安裝php與mysql互動的外掛程式
5.7 定義整個任務
6. 開始部署lamp環境ansible-playbook -i /etc/ansible/hosts /etc/ansible/lamp/roles/site.yml
完成之後直接訪問節點80埠的http服務
1、預設情況下,首次登陸一台伺服器,系統會提示是否要記住對端的指紋,用ansible也會這樣,這樣會導致需要手工輸入yes或no,ansible 才可以往下執行。如需避免這種情況,需要在 /etc/ansible/ansible.cfg 檔案中設定 host_key_checking = falserm -rf /root/.ssh/known_hosts
ansible-playbook -i /etc/ansible/hosts ./site.yml #發現需要輸入yes,來儲存對端的指紋
Playbook中條件的使用
用於捕獲命令的輸出,將結果作為變數,方便結果在下面的除錯,呼叫。將結果直接獲取 1 2 name 3 tasks 4 name run script 5 shell usr local bin user.sh 6 register command result 命令結果存入command resul...
使用Ansible中的playbook
playbook 是由乙個或多個play 組成的列表 playbook 檔案使用yaml來寫的 簡介 是一種表達資料序列的格式,類似xml 特點 可讀性好 和指令碼語言互動性號 易於實現 適用程式執行流梳理方式 可擴充套件性強 在檔案中用 開始 在檔案中用 結尾 次行一般書寫檔案內容 縮排嚴格 大小...
批量部署zabbix agent
zabbix作為系統級的監控還是非常給力,它總是在後台孜孜不倦的進行反反覆覆的檢查和校驗,然後通過郵件,簡訊,圖形等方式來把系統的預警表達出來。zabbix agent是在客戶端上需要的乙個元件,在這種被動模式下,zabbix server的壓力就會大大減輕,因為是在agent端開始推送資訊給服務端...