欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當(dāng)前位置:首頁 > 軟件開放 > 正文內(nèi)容

ansible批量修改服務(wù)器密碼(ansible sudo 需要密碼)

軟件開放2年前 (2023-01-07)3525

今天給各位分享ansible批量修改服務(wù)器密碼的知識,其中也會對ansible sudo 需要密碼進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!

本文目錄一覽:

Ansible安裝配置和基本使用

一、ansible 安裝

ansible 依賴于python2.6或更高的版本、paramiko、PyYAML及Jinja2。

將python頭文件拷貝到標(biāo)準(zhǔn)目錄,以避免編譯ansible時,找不到所需的頭文件

備份舊版本的python,并符號鏈接新版本的python

修改yum腳本,使其指向舊版本的python,已避免其無法運行

1.1 編譯安裝

解決依賴關(guān)系

解壓安裝包

編譯安裝

拷貝配置文件

1.2 rpm包安裝

使用阿里云鏡像源即可,這里為了方便使用,就直接使用yum安裝了。

Fedora 用戶可直接安裝Ansible, 但RHEL或CentOS用戶,需要 配置 EPEL # yum install -y epel-release # yum install -y ansible

注意:不同版本的ansible的功能差異可能較大。

二、配置

配置文件:/etc/ansible/ansible.cfg

hostfile=/etc/ansible/hosts #指定默認(rèn)hosts配置的位置 host_key_checking = False #不進(jìn)行host_key檢查,省去目標(biāo)key發(fā)生變化時輸入(yes/no)的步驟 ask_pass=True # 每次執(zhí)行ansible命令是否詢問ssh密碼 ask_sudo_pass=True # 每次執(zhí)行ansible命令時是否詢問sudo密碼

主機清單:/etc/ansible/hosts

主程序:ansible、ansible paly-book、ansible-doc

1、將要管理的主機納入 /etc/ansible/hosts配置文件中,可以填寫IP或是主機名

[WebServers] 10.10.10.3 10.10.10.4

2、.基于ssh的方式與被管理的主機進(jìn)行通信,在管理的主機上(部署ansible的主機上)生成一對非對稱密鑰,將公鑰發(fā)給被管理的主機。

a,生成密鑰對:ssh-keygen -t rsa

b,將密鑰發(fā)放到要管理的主機:ssh-copy-id -i 10.10.10.3 或 ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.10.10.3

3、使用ansible命令測試

[root@wlm yum.repos.d]# ansible all -m ping 10.10.10.4 | SUCCESS = { "changed": false, "ping": "pong" }

三、基本使用

1、常用命令

ansible-doc 命令:獲取模塊列表、模塊使用格式。

ansible-doc -l :獲取列表

ansible-doc -s module_name:獲取指定模塊信息

2、ansible 命令格式

ansible host-pattern [-f forks] [-m module_name] [-a args]

host-pattern 指明管控主機,以模式表示或者直接指定ip,必須事先指定在文件中;all所有

[-f forks] 指明每批管控多少主機,默認(rèn)是5個主機一批次

[-m module_name] 使用何種模塊操作,所有操作都需要通過模塊指定

[-a args] 指明模塊專用參數(shù);args 一般是 key=value格式。注:command模塊的參數(shù)不是kv模式,而是直接給出要執(zhí)行的命令。

注意:host-pattern 默認(rèn)讀取/etc/ansible/hosts,也可以指明自定義文件路徑 -iPATH,--inventory=PATH:指明使用的 host inventory文件路徑;

3、常用模塊介紹

1、command模塊:遠(yuǎn)程主機上運行命令

例:ansible hosts -m command -a "ls /tmp" 注:command模塊也可以省略。

給遠(yuǎn)程主機添加用戶、設(shè)置密碼:

ansible hosts -a 'useradd user1'

ansible hosts -a 'echo abc | passwd --stdin user1'

2、shell模塊:遠(yuǎn)程主機在shell進(jìn)程下運行命令,支持shell特性,也支持管道符。

10.10.10.4 | SUCCESS | rc=0

3、copy模塊:把當(dāng)前主機文件復(fù)制到遠(yuǎn)程主機位置,可以指定mode、own、group

10.10.10.4 | SUCCESS = { "changed": true, "checksum": "325287cee456533bf76025312e5d05e842cb43a9", "dest": "/root/abc.txt", "gid": 0, "group": "root", "md5sum": "1c6d47c6e4d59c630751b47fff140b89", "mode": "0644", "owner": "ansible", "size": 15, "src": "/root/.ansible/tmp/ansible-tmp-1484639082.19-114656107854348/source", "state": "file", "uid": 0 }

4、cron模塊:在遠(yuǎn)程主機指定crontab周期性計劃任務(wù)

minute= hour= day= month= weekday= job= name= (必須填寫) state=

ansible all -m cron -a "minute=*/10 job='/sbin/ntpdate 10.10.10.10 /dev/null' name=synctime" 可使用crontab -l查看

在管理的主機上可以刪除制定的計劃任務(wù)

10.10.10.4 | SUCCESS = { "changed": true, "envs": [], "jobs": [] }

5、fetch模塊:和copy相反,從遠(yuǎn)程主機拷貝文件到本地主機

可以不要flat=yes參數(shù),但作用:

當(dāng)dest=/root/kel/ ,abc.txt會保存在/root/kel/目錄下

當(dāng)dest=/root/kel ,會拷貝abc.txt文件,并命名成kel

6、file模塊:file模塊包含了文件、文件夾、超級鏈接類的創(chuàng)建、拷貝、移動、刪除

path=/etc/foo.conf owner=foo group=foo mode=0644

src=/file/to/link/to dest=/path/ro/symlink owner=foo group=foo state=link

src=/tmp/{{item.path}} dest={{item.dest}} state=link with_items:

path=/etc/foo.conf state=touch mode="u=rw,g=w,o=r"

path=/etc/foo.conf state=touch mode="u+w,g-w,o-rw"

7、yum模塊:用于yum安裝安裝和卸載

8、service模塊:服務(wù)管理

9、user/group模塊:user模塊管理用戶;group模塊管理group

四、Playbook劇本

playbook 是ansible更強大的配置管理組件,實現(xiàn)基于文本文件編排執(zhí)行的多個任務(wù),且多次重復(fù)執(zhí)行。playbook組織格式為使用YAML語言來編寫的。

playbook 是由一個或多個“play”組成的列表。play的主要功能在于將事先歸為一組的主機裝扮成事先通過ansible中的task定義好的角色。從根本上講,所謂的task無非是調(diào)用ansible的一個module。將多個play組織在一個playbook中,即可以讓他們聯(lián)通起來按事先編排的機制生效。

1、例子:

在ansible主機上的root目錄下創(chuàng)建httpd目錄,將本機的httpd.conf文件拷貝到該目錄下,修改配置文件里的監(jiān)聽端口是8081

remote_user:root #root前不能有空格

tasks: #任務(wù)列表

yum name=httpd state=present #yum后的: 刪除掉

copy src=/root/httpd/httpd.conf dest=/etc/httpd/conf

service name=httpd state=started

注意:yaml文件中支持#;下面的操作要跟上面的name對齊。

測試:

ansible-playbook --check playbook :只檢測可能會發(fā)生的改變,但不真正執(zhí)行操作

ansible-playbook playbook :直接執(zhí)行

ansible-playbook --list-hosts :列出運行任務(wù)的主機

2、playbook介紹

設(shè)置在特定條件下觸發(fā):

a,某任務(wù)的狀態(tài)在運行后為changed時,可通過“notify”通知給相應(yīng)的handles;

handles:任務(wù)在特定條件下觸發(fā);接收到其他任務(wù)的通知是被觸發(fā);

b,任務(wù)可以通過“tags”打標(biāo)簽,而后可在ansible-playbook命令上使用-t指定進(jìn)行調(diào)用;

使用Ansible實現(xiàn)自動化運維的一些技巧

最近一年才有機會在生產(chǎn)環(huán)境上使用 Ansible。用的過程中,想把一些小技巧記錄下來,避免自己忘記。如果能幫助到其他同學(xué)就更好了。如果有同學(xué)指出有更好的方法,就更更好了。

通常我們會使用 template module 來生成應(yīng)用的配置,比如生成 Nginx 的配置或者 sudoers 配置。而像 sudoers 文件內(nèi)的配置錯誤可能直接導(dǎo)致無法登錄。所以,我們希望在生成這些配置文件后能校驗一下它的正確性。如果校驗失敗,直接停止,不生成該配置文件。

而 template module 有一個屬性 validate 就是為了實現(xiàn)這一需求的:

校驗 Nginx 配置文件的文件:

校驗 Prometheus 配置文件:

校驗 Logstash 配置文件:

在部署 Zookeeper 時,通常會部署 3 臺組成集群,同時每臺 Zookeeper 都需要在配置一個 myid 的文本文件,而這個文件中只放id。而 id 是要求每臺機器都是不同的。這時 host 變量派上用場了。定義 host 變量有兩種方式:

這種方式筆者認(rèn)為可維護(hù)性更高

不推薦兩種方式都使用,因為變量的作用域問題會把你搞暈

某個 shell 需要一個臨時變量,可以使用 environment 實現(xiàn)

以下方式會生成: a,a,a,a, 注意最后的逗號我們是不需要的:

這時,我們可以這樣:

機器標(biāo)準(zhǔn)化要求每臺機器的ssh連接方式及管理員用戶名及密碼都是一樣的。但是事實中,面對老機器,常常做不過。所以,我們的 Ansible 腳本必須能做到不同的機器可以使用不同的連接方式、管理員用戶名和密碼。利用 host 變量就可以實現(xiàn)了。

舉個例子,當(dāng)前的文件內(nèi)容如下:

常識和技巧之間的界限很模糊??傊M麑ψx者有幫助。

使用ansible一鍵部署MongoDB分片集群

Mongodb 部署信息 :

os: centos7.7 x64 配置好NTP,防火墻默認(rèn)不做任何限制.

mongos部署兩個點,config3個點,和3個分片集群(每個分片一主一副一仲裁)

注意:因為判斷邏輯的問題,不要在任何節(jié)點同時運行兩種服務(wù)的主點

ansible的hosts文件配置:

環(huán)境變量全部都在這里設(shè)置,需要都寫入到ansible的hosts文件里

變量中

server_1_ip 都設(shè)置為主點

server_2_ip 都設(shè)置為副點

server_3_ip 都設(shè)置為仲裁節(jié)點(config server沒有仲裁節(jié)點,但是也要寫,不然mongos的配置文件模板會報錯)

這些IP的配置后面在初始化時會用到.

ansible文件夾結(jié)構(gòu) :

首先是模板文件:

mongod.conf.mongos.j2 mongos的配置文件模板

mongod.conf.normal.j2 shard server和config server的配置文件模板

mongod.service.j2 service文件模板

mongo.key 直接手動生成 ,用戶MongoDB集群之間的加密連接,記得權(quán)限改為600

passwd.j2 用于配置MongoDB的root用戶名密碼

執(zhí)行:

按提示輸入服務(wù)器密碼

包含了系統(tǒng)優(yōu)化相關(guān)設(shè)置,注意中間會重啟一次讓一些系統(tǒng)優(yōu)化項生效

注意:因為判斷邏輯的問題,不要在任何節(jié)點同時運行兩種服務(wù)的主點

執(zhí)行 :

如果執(zhí)行有問題建議多檢查變量配置

全部完成后可以驗證一下集群環(huán)境:

登陸分片集群 :

分片的狀態(tài)顯示正常

登陸mongos

可以看到mongos的狀態(tài)也正常,分片也全部都添加進(jìn)去. 全部安裝至此完成.

一鍵刪除MongoDB安裝及相關(guān)數(shù)據(jù),方便重裝...

一鍵啟動整個MongoDB集群

一鍵停止所有MongoDB集群

以上就是ansible在MongoDB的一鍵部署腳本,而且附帶了對服務(wù)器的優(yōu)化相關(guān)配置

ansible模板等使用方法

==============================================================

ansible 主機信息(可以是組) -m 模塊名稱 -a "完成動作"

舉例:

在ansible中 使用ansible-doc 模塊名稱 來查看單獨模塊用法

常用參數(shù)

官方模塊說明:

參數(shù):chdir--在執(zhí)行命令操作前進(jìn)行切換目錄

參數(shù):creates--判斷一個文件是否存在,如果存在后面的命令就不會執(zhí)行

參數(shù):removes--判斷一個文件是否存在,如果不存在,后續(xù)的命令不會被執(zhí)行

官方模塊說明:

參數(shù)chdir:在執(zhí)行命令前進(jìn)行目錄切換

參數(shù):creates----判斷一個文件是否存在,如果存在,后續(xù)命令不會執(zhí)行

參數(shù):removes--判斷一個文件是否存在,如果不存在則候命的命令不會執(zhí)行

官網(wǎng)模塊說明:

使用這個模塊需要注意的

官方模塊說明:

參數(shù):name--指定安裝軟件的名稱

參數(shù):state--指定軟件安裝或卸載

在這個模塊中卸載使用 removed 安裝使用installed;注意看示例

官網(wǎng)模塊說明:

官網(wǎng)模塊說明:

參數(shù):src--指定管理端源數(shù)據(jù)

參數(shù):dest--分發(fā)到遠(yuǎn)程主機的目標(biāo)路徑下

參數(shù):owner--專屬文件之后修改文件屬主

參數(shù):group--傳輸文件之后修改文件屬組

參數(shù):mode--修改文件的讀、寫、執(zhí)行權(quán)限

參數(shù):backup--在分發(fā)傳輸文件之前,將源文件進(jìn)行備份,按照時間信息進(jìn)行備份

參數(shù)remote_src--no表示從管理端找尋數(shù)據(jù)進(jìn)行分發(fā);yes 默認(rèn)從被管理端找尋數(shù)據(jù)進(jìn)行分發(fā)

參數(shù)content--分發(fā)文件時在文件中穿件簡單信息

官網(wǎng)模塊說明:

參數(shù):src--要拉取的遠(yuǎn)程數(shù)據(jù)

參數(shù):dest--要保存本地的文件路徑

官方說明:

path:指定路徑信息

owner:傳輸文件之后修改文件屬主權(quán)限

group:傳輸文件后修改屬組權(quán)限

mode:直接修改文件讀、寫、執(zhí)行權(quán)限

state:touch(創(chuàng)建文件)、directory(創(chuàng)建目錄)、hard(創(chuàng)建硬鏈接文件) link(創(chuàng)建軟鏈接文件)、absent(刪除數(shù)據(jù))

創(chuàng)建件目錄:

創(chuàng)建文件:

刪除數(shù)據(jù)信息:

官方說明:

參數(shù):src--指定要掛載數(shù)據(jù)

參數(shù):path--指定掛載點

**參數(shù):fstype--指定掛載后,文件系統(tǒng)類型 如:ext3、ext4、xfs、nfs **

參數(shù):state--指定動作 如:mounted(掛載)、present(永久掛載)、umounted(臨時卸載) absent(永久卸載)

掛載:

官方說明:

name: 定義定時任務(wù)注釋信息

參數(shù):minute --表示分鐘信息

參數(shù):hour --表示小時信息

參數(shù):day --表示日期信息

參數(shù):month --表示月份信息

參數(shù):weekday --表示星期信息

參數(shù):job --表示定義任務(wù)信息

參數(shù):state --指定動作 如:present(創(chuàng)建定時任務(wù))、absent(刪除定時任務(wù))

參數(shù):disabled: 讓定時任務(wù)臨時失效

利用ansible編寫時間同步定時任務(wù):每隔5分鐘,進(jìn)行時間同步:

刪除定時任務(wù):

注釋定時任務(wù):

官網(wǎng)說明:

參數(shù):name--指點組名

參數(shù):gid--指定gid

參數(shù):state--指定動作 present(創(chuàng)建) absent(刪除)

官方說明:

參數(shù):name--指定用戶名稱

參數(shù):uid--指定用戶uid信息

參數(shù):group--指定屬組

參數(shù):groups--指定屬于附加組

參數(shù):password—-指定用戶密碼信息(必須密文的信息)

參數(shù):shell—-指定用戶shell信息 /sbin/nologin

參數(shù):create_home--no表示不創(chuàng)建家目錄

創(chuàng)建用戶:

刪除用戶:

**方法一:利用ansible模塊功能

ansible all -i localhost, -m debug -a "msg={{ 'mypassword' | password_hash('sha512', 'mysecretsalt') }}"

mypassword: 指定明文密碼信息

mysecretsalt:加密計算方式(輔助加密)

方法二:利用python模塊功能

使用這種方法需要安裝python-pip

如果安裝不上需要更新pip源,更新方法:

更新pip源:

==============================================================

Linux

ansible批量修改服務(wù)器密碼的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于ansible sudo 需要密碼、ansible批量修改服務(wù)器密碼的信息別忘了在本站進(jìn)行查找喔。

掃描二維碼推送至手機訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。

本文鏈接:http://landcheck.net/post/2817.html

“ansible批量修改服務(wù)器密碼(ansible sudo 需要密碼)” 的相關(guān)文章

工業(yè)軟件開發(fā)技術(shù)(工業(yè)軟件開發(fā)技術(shù)專業(yè)就業(yè)方向)

工業(yè)軟件開發(fā)技術(shù)(工業(yè)軟件開發(fā)技術(shù)專業(yè)就業(yè)方向)

今天給各位分享工業(yè)軟件開發(fā)技術(shù)的知識,其中也會對工業(yè)軟件開發(fā)技術(shù)專業(yè)就業(yè)方向進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、工業(yè)軟件開發(fā) 2、工業(yè)軟件開發(fā),工業(yè)app開發(fā)需要多少錢 3、工業(yè)軟件開發(fā)技術(shù)專業(yè)學(xué)什么 4、國家鼓勵的工業(yè)軟件開發(fā)核心是...

國外網(wǎng)站新聞軟件(國外的新聞軟件)

國外網(wǎng)站新聞軟件(國外的新聞軟件)

今天給各位分享國外網(wǎng)站新聞軟件的知識,其中也會對國外的新聞軟件進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、查看國際新聞用什么軟件更好 2、求問!求問!有什么軟件可以關(guān)注全球新聞,特別是民生新聞,經(jīng)濟(jì)等等之類的。謝謝各位了! 3、有什么可以看國外英...

python網(wǎng)站開發(fā)模板(python 網(wǎng)站框架)

python網(wǎng)站開發(fā)模板(python 網(wǎng)站框架)

本篇文章給大家談?wù)刾ython網(wǎng)站開發(fā)模板,以及python 網(wǎng)站框架對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、python web開發(fā) 該用什么框架 2、使用python創(chuàng)建web靜態(tài)網(wǎng)站 3、怎么用python簡單的制作一個網(wǎng)頁 4、Python 有...

sony相機官方售后電話(sony相機客服電話)

sony相機官方售后電話(sony相機客服電話)

今天給各位分享sony相機官方售后電話的知識,其中也會對sony相機客服電話進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、索尼相機合肥售后服務(wù)在哪里 2、哈爾濱的索尼相機售后服務(wù)在哪 3、襄陽SONY相機的售后服務(wù)電話是多少?地址在哪? 索尼相機...

蘋果登錄ID時安全碼(登陸蘋果id安全碼是啥)

蘋果登錄ID時安全碼(登陸蘋果id安全碼是啥)

本篇文章給大家談?wù)勌O果登錄ID時安全碼,以及登陸蘋果id安全碼是啥對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、使用蘋果id但是已經(jīng)不用蘋果手機了安全碼怎么寫 2、請問,注冊蘋果id安全碼是什么 3、在蘋果手機中銀行卡的安全碼是什么意思? 使用蘋果id但是已經(jīng)...

临城县| 资溪县| 西青区| 江华| 大足县| 蕲春县| 宁南县| 慈利县| 屏东县| 南丰县| 中江县| 托里县| 蒙城县| 合山市| 和林格尔县| 章丘市| 鄢陵县| 阿拉善左旗| 吴川市| 连南| 内丘县| 上高县| 自贡市| 阿拉善右旗| 九龙城区| 永泰县| 陆良县| 集贤县| 上犹县| 内黄县| 灵山县| 双流县| 花垣县| 宁德市| 温宿县| 彭阳县| 洛浦县| 赤城县| 安陆市| 高邑县| 黎川县|