來學習ansibie(1)

# ansible

批量在遠程主機上執行命令

python2.7編寫

## 安裝

第一步:下載epel源

```shell
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
```

第二步:安裝

```shell
yum install -y ansible
```

## ansible 命令格式

```shell
Usage: ansible <host-pattern> [options]
-a MODULE_ARGS 模塊參數
-C, --check 檢查語法
-f FORKS 并發
--list-hosts 列出主機列表
-m MODULE_NAME 模塊名字
```

ssh 認證方式

- 密碼
- 秘鑰
- ssh-keygen 生成密鑰對
- ssh-copy-id 復制公鑰到遠程主機
- 私鑰加密,公鑰解密

查看ansible生成的文件

```shell
rpm -ql ansible
/etc/ansible
/etc/ansible/ansible.cfg # ansible 配置文件
/etc/ansible/hosts
/etc/ansible/roles
```

## ping 走的是ICMP協議

## ansible第一條命令

```shell
ansible 192.168.12.26 -m ping ping 一臺機器
ansible 192.168.12.26,192.168.12.28 -m ping ping多臺機器
ansible all -m ping ping所有機器
ansible web -m ping ping 一個組
ansible 'web:!db' -m ping ping web中有但是db中沒有
ansible "web:&db" -m ping ping web和db的并集
ansible "web:db" -m ping ping web和db的交集

```

hosts文件內容

```shell
# It should live in /etc/ansible/hosts
#
# - Comments begin with the '#' character #是注釋
# - Blank lines are ignored 空行被忽略
# - Groups of hosts are delimited by [header] elements []表示主機組
# - You can enter hostnames or ip addresses 可以輸入主機名或者ip地址
# - A hostname/ip can be a member of multiple groups 一臺主機可以被分配多個組
www[001:006].example.com www001到www006.example.com
```

### host-pattern格式

- 單個的機器
- 多個的機器,逗號隔開
- 全部機器,all
- 可以寫一個分組
- 可以寫多個分組
- 并集
- 逗號隔開
- 冒號隔開
- 交集,:&隔開
- 差集: :!隔開

## ansible-doc 查看模塊幫助信息

```shell
ansible-doc [-l|-F|-s] [options] [-t <plugin type> ] [plugin]
-j 以json格式顯示所有模塊信息
-l 列出所有的模塊
-s 顯示模塊的摘要信息
# 直接顯示模塊的所有幫助信息

```

ansible 特性: 冪等性 不管執行幾次,結果都是一樣的

# 命令相關

## command

```shell
ansible web -a 'ls'
ansible web -a 'chdir=/tmp pwd' # 先切換目錄,在執行相應的命令,一般情況下在編譯時候使用
ansible web -a 'creates=/tmp pwd' # 如果creates的文件存在,則不執行后面的操作
ansible web -a 'removes=/tmp pwd' # 如果removes的文件存在,則執行后面的操作
ansible web -a 'removes=/tmp mkdir /data' # 會執行后面的mkdir命令
ansible web -a 'creates=/data2 mkdir /data2' #會執行后面的mkdir命令

```

補充

```shell
查看用戶是否被創建成功
tail -1 /etc/passwd
tail -1 /etc/shadow
id
echo '1' | passwd --stdin alex 非交互式設置密碼
```

## shell

```shell
<>|;& $ 這些特殊字符command不支持
ansible web -m shell -a 'echo "1" | passwd --stdin alex' 設置alex的密碼
ansible 192.168.12.25 -m shell -a '/root/a.sh' 執行shell腳本,前提是腳本有可執行權限
ansible 192.168.12.25 -m shell -a '/root/a.py' 執行python腳本,前提是腳本有可執行權限

```

## script

```shell
ansible db -m script -a '/root/m.sh' 執行管控機上的文件
ansible web -m script -a 'creates=/root/a.sh /root/m.sh' # 查看的是被管控機上的文件是否存在
```

# 文件相關的模塊

## copy

```shell
ansible db -m copy -a "dest=/tmp/a.sh src=/root/m.sh" 復制文件到遠程主機
ansible db -m copy -a "dest=/tmp/a.sh src=/root/m.sh backup=yes" 復制文件并備份遠程文件
ansible web -m copy -a "dest=/tmp/a.sh src=/root/m.sh owner=alex mode=700" 修改復制后的文件的屬主和權限
ansible web -m copy -a "src=/etc/init.d dest=/tmp" 復制目錄到遠程主機
ansible web -m copy -a "src=/etc/init.d/ dest=/tmp" 復制目錄里面的文件到遠程主機
ansible web -m copy -a "src=/etc/ansible dest=/tmp owner=alex" 復制目錄到遠程主機,并修改目錄的屬主,并且里面文件的屬主也被修改了
ansible web -m copy -a "content='大弦嘈嘈如急雨,小弦切切如私語' dest=/tmp/b.txt" 直接將content里面的內容添加到dest的文件里面
```

## file

### 補充

```shell\
ln -s 原文件地址 目標文件地址 創建軟連接
ln 創建硬鏈接
```

```shell
ansible cache -m file -a "path=/tmp/wupeiqi state=directory" 創建一個目錄
ansible cache -m file -a "path=/tmp/wupeiqi.txt state=touch" 創建一個文件
ansible cache -m file -a "path=/tmp/t state=link src=/etc/init.d" 創建軟連接 path是目標文件 src是源文件
ansible cache -m file -a "path=/tmp/t state=absent " 刪除文件

轉載于:https://www.cnblogs.com/wszxdzd/p/10380800.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248521.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248521.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248521.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CQYZOJ P1392 拔河問題

題目\(1\) Description 一個學校舉行拔河比賽&#xff0c;所有的人被分成了兩組&#xff0c;每個人必須&#xff08;且只能夠&#xff09;在其中的一組&#xff0c;且兩個組內的所有人體重加起來盡可能地接近. Input 第\(1\)行是一個\(n\)&#xff0c;表示參加拔河比賽的總人數…

靈活的Vue組件——原來這么簡單

本篇學習目標 能夠理解vue組件概念和作用能夠掌握封裝組件能力能夠使用組件之間通信能夠完成todo案例 1. vue組件 1.0_為什么用組件 以前做過一個折疊面板 需求: 現在想要多個收起展開的部分 方案1: 復制代碼 代碼重復 冗余不利于維護 案例用less寫的樣式, 所以下載 ya…

FOI冬令營 Day 3

目錄 T1、簽到題&#xff08;sort&#xff09;傳送門 Code T2、送分題&#xff08;queue&#xff09;傳送門 Code T3、簡單題&#xff08;game&#xff09;傳送門 Code 咕咕咕T1、簽到題&#xff08;sort&#xff09; 傳送門 原題&#xff1a;LOJ 2767 Code //2019/2/14 //50…

委托事件觀察者模式

委托的默認返回類型&#xff1a;void 聲明委托的關鍵字&#xff1a;delegate 多播委托&#xff1a;將多個方法綁定到一個委托變量 在調用方法時 可以執行綁定的方法 委托的描述&#xff1a; 委托是一個類 定義了方法的類型 可以將方法當做另一個方法進行傳遞 委托并不等同于方法…

贏在CSDN——名利兼收

文章目錄&#x1f30a; 相識CSDN&#x1f30a; 益于CSDN流量將成為你我的亮點我的專欄收益到賬啦學習會員助你拿捏專欄更多曝光自己的機會CSDN問答為你準備的零花錢&#x1f30a; 忠于CSDN&#x1f30a; 相識CSDN 小編自注冊CSDN至今兩年有余&#xff0c;記得初衷也僅僅是為了…

124angular1實現無限表單(僅供自己看)

//將本行的內容對象作為參數&#xff0c;傳給點擊函數&#xff0c;點擊函數向后臺發送請求&#xff0c;把獲取的返回值作為內容對象的一個屬性。 (function (angular) {angular.module(myModule, []).directive(treeModel, [$compile, function ($compile) {return {restrict: …

了解 Vue SSR 這一篇足以

文章目錄1 - 什么是服務器端渲染&#xff1f;1.1 新建server文件夾1.2 生成一個node項目1.3 安裝express1.4 服務端渲染小案例1.5 運行查看效果1.6 打開瀏覽器1.7 右鍵查看源代碼2 - 什么是客戶端渲染&#xff1f;2.1 新建client文件夾2.2 生成一個vue項目2.3 安裝依賴并啟動2.…

3 數組中的重復數字

題目描述 在一個長度為 n 的數組里的所有數字都在 0 到 n-1 的范圍內。數組中某些數字是重復的&#xff0c;但不知道有幾個數字是重復的&#xff0c;也不知道每個數字重復幾次。請找出數組中任意一個重復的數字。 Input: {2, 3, 1, 0, 2, 5}Output: 2 思路 給出了長度為n且數組…

小型軟件項目開發流程探討

一&#xff0e;導言國內很多項目都是小型項目, 參與人員少(兩到五個人), 要快速交付(一兩個月) . 要成功完成這種項目, 除了使用成熟且被團隊成員熟練使用的技術之外, 有一個良好的開發流程, 也是很必要的. 二&#xff0e;小型軟件項目開發流程下圖是我對小型軟件項目開發流程…

Vue2的核心原理剖析

? 用了這么久的Vue2了你真的 知其然&#xff0c;知其所以然么&#xff1f; ?今天博主就為大家帶來一篇對Vue核心功能的部分剖析\textcolor{pink}{今天博主就為大家帶來一篇對Vue核心功能的部分剖析}今天博主就為大家帶來一篇對Vue核心功能的部分剖析 ?后續文章會用更多小案…

Scrum之成敗——從自身案例說起,僅供參考

從07年中初次接觸Scrum的概念到其中幾年項目中逐漸實踐CI、TDD&#xff0c;到親自掌握項目實踐Scrum近一年&#xff0c;最終我們放棄了Scrum這個框架和所謂的“自組織”。原因為何&#xff1f; 1.成員放棄了Scrum所“賦予”的“權利” 比如領用任務、評估工作量、自組織協作、決…

sanic官方文檔解析之下載和Configuration

1,sanic框架是做什么的? sanic的官方網址:https://sanic.readthedocs.io/en/latest/sanic框架是一個類似于flask框架的在Python3.5以上版本的文本服務器,他能夠快速的編寫,它是通過驚人的開發效率完成開發,希望通過這篇文章得到激勵sanic框架的理念是:簡單,高效 sanic的應用如…

首秀 Express 框架

文章目錄框架特性express的使用初始化項目&#xff1a;下載框架模塊&#xff1a;測試代碼&#xff1a;總結以上代碼&#xff1a;請求處理的中間件概念&#xff1a;中間件——app.use基本用法&#xff1a;next的用法app.use中間件的應用路由的保護網站維護公告自定義404&#xf…

云原生技能樹測評

前言 利用午休后的10多分鐘時間&#xff0c;看了看APP的技能樹板塊&#xff0c;簡單的提出幾個看法&#xff01; 答題過程 可以設置為闖關類型&#xff0c;答對一道后可以進入下一關&#xff0c;或者是一個章節為一關&#xff0c;讓大家一直有一種期待 回答錯誤數量 可以…

原型和閉包

原型和閉包 一切皆對象 一切皆對象&#xff08;類型值除外&#xff09; undefined, number, string, boolean屬于簡單的值類型 函數、數組、對象、new Number(10)都是對象。他們都是引用類型 Null是基本數據類型&#xff0c;不是引用數據類型 基本數據類型的值就是它本身的值&a…

python 排序算法

冒泡排序&#xff1a; 1 #coding:utf-82 3 比較相鄰的元素&#xff0c;每一趟交換后&#xff0c;最后的元素是最大的。4 第一次比較n-1次&#xff0c;第二次比較n-2次。。。第n-1次比較1次5 進行n-1次冒泡次數6 最優時間復雜度O(n),最壞時間復雜度O(n^2)7 8 9 def bubble_sort…

獎勵 CSDN 社區的領軍人物

設計動機 領軍人物榜單在這里&#xff1a;https://blog.csdn.net/rank/list/role CSDN 是中國 IT 人士學習、成長、成功的平臺&#xff0c; 這個平臺有很多博主&#xff0c; 博主寫的很多優秀文章獲得了粉絲。 那么&#xff0c; 博主獲得粉絲之后&#xff0c; 博主以粉絲為榮…

一文教會你何為重繪、回流?

文章目錄css圖層圖層創建的條件重繪(Repaint)回流觸發重繪的屬性觸發回流的屬性常見的觸發回流的操作優化方案requestAnimationFrame----請求動畫幀寫在最后學習目標&#xff1a; 了解前端Dom代碼、css樣式、js邏輯代碼到瀏覽器展現過程了解什么是圖層了解重繪與回流了解前端層…

mockjs中的方法(三)

1&#xff09;Mock.mock()&#xff1b; Mock.mock( url, type, template, function(options) ); 其中 url 是定義我們要請求的 url 地址&#xff0c;以便于我們請求的時候 mock 去進行攔截&#xff0c;知道我們要去請求那個值&#xff1b;但是它也是可選的&#xff0c;而且格式…

js函數、js對象的這些點你真的懂嗎?

本篇學習目標 ?了解函數&#xff08;高級&#xff09;原型原型鏈概念\textcolor{green}{了解函數&#xff08;高級&#xff09;原型原型鏈概念}了解函數&#xff08;高級&#xff09;原型原型鏈概念 ?掌握函數作用域\textcolor{green}{掌握函數作用域}掌握函數作用域 ?掌握…