ansible安裝和一鍵化部署Rsync服務

2021-09-02 23:22:28 字數 3069 閱讀 7878

ansible是新出現的自動化運維工具,基於python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。在講ansible之前,我們先來說一說基於ssh的密匙建立遠端連線。

一般情況下,我們在一台主機上使用ssh命令連線另一台主機都需要輸入密碼。但是今天給大家帶來一種用密匙的方式,免去每次遠端連線都需要使用密碼的繁瑣。

首先我們要建立一對密匙(類似於一把鎖和一把鑰匙)

ssh-keygen -t dsa
-t 表示密匙型別。有兩種,一種是dsa,另一種是rsa。隨便選哪種都可以。

在使用該命令建立密匙時會要確認密匙存放路徑和密匙是否要加密。

此時我們可以加上兩個引數來避免這種情況。-f 引數可以指定存放位置,-n引數可以指定密碼內容。(雙引號內沒有空格!)

ssh-keygen -t dsa -f /root/.ssh/id_dsa -n ""
這樣我們就可以完成,免互動建立密匙了。接下來是分發密匙。當我們用一下命令分發密匙的時候。會讓我們確認我們是否要連線172.16.1.8主機。確認之後還要輸入密碼。

此時我們又可以增加兩個引數避免互動

sshpass -p123456 和 -o stricthostkeychecking=no (sshpass需要用yum安裝一下。)

使用一下命令即可完成面互動分發密匙。

sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o stricthostkeychecking=no 172.16.1.7"
下面是批量分發(利用sh指令碼和for迴圈。)

#!/bin/bash

rm /root/.ssh/id_dsa

ssh-keygen -t dsa -f /root/.ssh/id_dsa -n ""

for ip in 31 41 7

dosshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o stricthostkeychecking=no 172.16.1.$ip"

done

完成以上內容後,我們可以正式開始使用ansible了。

想要使用ansible一鍵化部署,首先要對ansible進行安裝。安裝ansible主要分為兩種:

控制主機的安裝:

yum install -y ansible
受控主機的安裝(可選):

yum install -y libselinux-python
vim /etc/ansible/hosts

[oldboy]

172.16.1.7

172.16.1.31

172.16.1.41

注意:[oldboy]是將下面三個ip位址包含在oldboy組內。在進行批量化管理的時候直接使用oldboy即可同時對以上三個主機同時管理。

此時ansible已經部署完成。可以使用了。

注意:如果不進行上面的ssh免密互動,則需要在ansible配置檔案中加入每台主機的使用者名稱和密碼。

172.16.1.31 ansible_user=root ansible_password=123456
#command play-book

- hosts: 172.16.1.41

tasks:

- name: step01:install rsync

yum: name=rsync state=installed

- name: step02:edit rsync conf file

copy: src=/etc/ansible/conf/rsync_conf/rsyncd.conf dest=/etc/

- name: step03:create rsync user

user: name=rsync state=present createhome=no shell=/sbin/nologin

- name: step04:create rsync auth file

copy: src=/etc/ansible/conf/rsync_conf/rsync.password dest=/etc/ mode=600

- name: step05:create rsync dir

file: dest=/backup/ state=directory owner=rsync group=rsync

- name: step06:boot rsync server

shell: creates=/var/run/rsyncd.pid rsync --daemon

- hosts: 172.16.1.31

tasks:

- name: step01:create auth file

copy: src=/etc/ansible/conf/rsync_conf/rsync_client.password dest=/etc/rsync.password mode=600

執行指令碼的方法:

ansible-playbook /etc/ansible/ansible-playbook/test.yaml
可以在命令裡加入-c引數,進行模擬執行。進行指令碼驗證。

ansible-playbook -c /etc/ansible/ansible-playbook/test.yaml

2020 4 20 ansible一鍵部署nfs

root m01 tools cat nfspeizhi.sh cat etc exports tasks name yum shell yum install y nfs utils rpcbind 安裝nfs name yunm shell yum y install sshpass 安裝金鑰的...

一鍵化部署WordPress指令碼

root qls service scripts day11 cat lnmp.sh bin bash 引用函式 f etc init.d functions source etc init.d functions 選單cat eof 0.check network 1.install nginx ...

nginx一鍵安裝部署指令碼

前言 建立指令碼 bin bash rpm qa grep q wgetif ne 0 then read ep 未發現wget工具,是否嘗試自動安裝 y n install wget if install wget y o install wget y then echo 開始安裝wget.yum...