ansible自動化運維必備工具詳解


第2章 ansible簡單介紹:

2.1 ansible是什麼?

  • ansible是新出現的 自動化 運維工具  基於Python研發  糅合了衆多老牌運維工具的優點實現了批量操作系統配置、批量程序的部署、批量運行命令等功能。 僅需在管理工作站上安裝 ansible 程序配置被管控主機的 IP 信息,被管控的主機無客戶端。 ansible 應用程序存在於 epel( 第三方社區 源,依賴於很多 python 組件

  • python語言是運維人員必會的語言!
    ansible是一個基於Python開發的自動化運維工具
    ansible的功能實現基於SSH遠程連接服務
    ansible可以實現批量系統配置,批量軟件部署,批量文件拷貝,批量運行命令等功能

 

2.2 ansible特點:

  • 模塊化設計,調用特定的模塊來完成特定任務,本身是核心組件,短小精悍:

  • 基於Python語言實現,由

  • Paramiko (python 的一個可併發連接 ssh主機功能庫 ) ,PyYAMLJinja2 ( 模板化 三個關鍵模塊實現;
    1)不需要單獨安裝客戶端,基於系統自帶的sshd服務,sshd就相當於ansible的客戶端
    2)不需要服務端
    3)需要依靠大量的模塊實現批量管理
    4)配置文件/etc/ansible/ansible.cfg

  • 配置文件

  • ansible 應用程序的主配置文件/etc/ansible/ansible.cfg

  • Host Inventory 定義管控主機 /etc/ansible/hosts

遵循 INI風格;中括號中的字符是組名;一個主機可同時屬於多個組;

[webserver]

172.16.1.7

172.16.1.8

 

[server]

172.16.1.7

  1. 3.     A collection of hosts belonging tothe'webservers' group;一批主機屬於一個組,例如定義爲 'webservers' 的組

[webservers]

172.16.1.31

175.16.1.31

 

#[webservers] 組名  下面是管理的主機 可以實現批量管理一個組的主機,前提必須是sshkey祕鑰認證。

注意:默認是以 root 用戶執行,但是基於 ssh 連接操作要多次輸入密碼,爲方便可以使用基於 ssh 密鑰方式進行認證

第3章 安裝ansible

3.1 mo1管理機安裝ansible

#安裝ansible之前需要安裝epel.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

 

#安裝ansible工具

yum -y install ansible

3.2 所有被管理端需要安裝

#管理的機器必須安裝

yum -y install libselinux-python

 

#安裝完畢以後檢查

[root@nfs01 ~]# rpm -qa | grep libselinux-python
libselinux-python-2.0.94-7.el6.x86_64

第4章 ansible命令幫助

 ansible-doc命令:獲取模塊列表,及模塊使用格式;

ansible-doc -l :獲取列表查看所有的模塊

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

ansible-doc -s service 查看指定模塊用法

 

ansible 命令常用參數

-C, --check           don't make any changes; instead, tryto predict some

Connection Options: #檢查不做任何改動;相反, 嘗試預測一些

-v    顯示輸出信息   -vvvv  最多可以4v

 

#ansible 命令幫助參數詳解

[root@m01 /]# ansible --help

Usage: ansible <host-pattern> [options]

 

Options:

  -a MODULE_ARGS, --args=MODULE_ARGS

 

                       module arguments

 --ask-vault-pass      ask forvault password

  -BSECONDS, --background=SECONDS

                        run asynchronously,failing after X seconds

                        (default=N/A)

  -C, --check           don't make any changes; instead, tryto predict some

                        of the changes that mayoccur

  -D,--diff            when changing (small)files and templates, show the

                        differences in thosefiles; works great with --check

  -eEXTRA_VARS, --extra-vars=EXTRA_VARS

                        set additional variablesas key=value or YAML/JSON

  -fFORKS, --forks=FORKS

                        specify number ofparallel processes to use

                        (default=5)

  -h,--help            show this help messageand exit

  -iINVENTORY, --inventory-file=INVENTORY

                        specify inventory hostpath

                       (default=/etc/ansible/hosts) or comma separated host

                        list.

  -lSUBSET, --limit=SUBSET

                        further limit selectedhosts to an additional pattern

 --list-hosts          outputs alist of matching hosts; does not execute

                        anything else

  -m MODULE_NAME,--module-name=MODULE_NAME

                        module name to execute(default=command)

  -M MODULE_PATH,--module-path=MODULE_PATH

                        specify path(s) tomodule library (default=None)

 --new-vault-password-file=NEW_VAULT_PASSWORD_FILE

                        new vault password filefor rekey

  -o,--one-line        condense output

 --output=OUTPUT_FILE  output filename for encrypt or decrypt; use - for

                        stdout

  -PPOLL_INTERVAL, --poll=POLL_INTERVAL

                        set the poll intervalif using -B (default=15)

 --syntax-check        perform asyntax check on the playbook, but do not

                        execute it

  -tTREE, --tree=TREE  log output to thisdirectory

 --vault-password-file=VAULT_PASSWORD_FILE

                        vault password file

  -v,--verbose         verbose mode (-vvv formore, -vvvv to enable

                        connection debugging)

 --version             showprogram's version number and exit

 

 Connection Options:

   control as whom and how to connect to hosts

 

    -k,--ask-pass      ask for connectionpassword

   --private-key=PRIVATE_KEY_FILE, --key-file=PRIVATE_KEY_FILE

                        use this file toauthenticate the connection

    -uREMOTE_USER, --user=REMOTE_USER

                        connect as this user(default=None)

    -cCONNECTION, --connection=CONNECTION

                        connection type to use(default=smart)

    -TTIMEOUT, --timeout=TIMEOUT

                        override the connectiontimeout in seconds

                        (default=10)

   --ssh-common-args=SSH_COMMON_ARGS

                       specify common arguments topass to sftp/scp/ssh (e.g.

                        ProxyCommand)

   --sftp-extra-args=SFTP_EXTRA_ARGS

                        specify extra argumentsto pass to sftp only (e.g. -f,

                        -l)

   --scp-extra-args=SCP_EXTRA_ARGS

                        specify extra argumentsto pass to scp only (e.g. -l)

   --ssh-extra-args=SSH_EXTRA_ARGS

                        specify extra argumentsto pass to ssh only (e.g. -R)

 

 Privilege Escalation Options:

    controlhow and which user you become as on target hosts

 

    -s,--sudo          run operations with sudo(nopasswd) (deprecated, use

                        become)

    -USUDO_USER, --sudo-user=SUDO_USER

                        desired sudo user(default=root) (deprecated, use

                        become)

    -S,--su            run operations with su(deprecated, use become)

    -RSU_USER, --su-user=SU_USER

                        run operations with suas this user (default=root)

                        (deprecated, usebecome)

    -b,--become        run operations withbecome (does not imply password

                        prompting)

   --become-method=BECOME_METHOD

                        privilege escalationmethod to use (default=sudo),

                        valid choices: [ sudo |su | pbrun | pfexec | doas |

                        dzdo | ksu | runas ]

   --become-user=BECOME_USER

                        run operations as thisuser (default=root)

   --ask-sudo-pass     ask for sudopassword (deprecated, use become)

   --ask-su-pass       ask for supassword (deprecated, use become)

    -K,--ask-become-pass

                        ask for privilegeescalation password

4.1 ansible語法格式

 

.ansible 命令格式

ansible <host-pattern>  [-m module_name]  [-a args]

命令     主機模式      指定模塊默認(command d

<host-pattern>

指明管控主機,以模式形式表示或者直接給定 IP,必須事先定義在文件中; all 設置所有;主機組

[-m module_name]

使用那種模塊管理操作,所有的操作都需要通過模塊來指定

默認不指定模塊是command

[-a args]

指明模塊專用參數; args 一般爲 key=value 格式

注意:command模塊的參數非爲kv格式,而是直接給出要執行的命令即可;  如:-a  "hostname"   

注意: <host-pattern> 默認讀取 /etc/ansible/hosts ,也可以指明自定義文件路徑

-iPATH, --inventory=PATH:指明使用的host inventory文件路徑;

 

 

4.2 ☆常用模塊 (module_name) 

4.3 重要模塊功能總結

ansible重要模塊功能總結
    command(重要模塊)執行命令模塊,ansible命令執行默認模塊
    shell
(重要模塊)執行shell腳本模塊
    script
(重要模塊)把腳本發到客戶端,然後執行;執行腳本命令在遠端服務器上
    copy
(重要模塊)把本地文件發送到遠端
    cron    
(重要模塊)編寫定時任務的模塊

4.3.1 command(命令模塊)

默認模塊,可省略。在遠程主機上進行操作命令。 -a "hostname"

注意: comand 模塊的參數非 key=value 格式,直接給出要執行的命令

 

4.3.2 cron(定時任務模塊)

-a  "name= state=  minute=  hour= day= month=  weekday= job="

4.3.3 cron常用參數詳解

4.3.4 定時實戰操作

#通過ansible 給主機172.16.1.41添加一個定時任務 描述信息爲 By Kaile uptime 每隔一個小時五分鐘更新一次系統時間

 

#首先可以管理機器上進行測試

ansible 172.16.1.41 -C -m cron -a "name='ByKaile uptime' minute=5 job='/usr/sbin/ntpdate

time.nist.gov >/dev/null 2>&1'"

 

#172.16.1.4主機創建定時任務  

[root@m01 /]# ansible 172.16.1.41 -m cron -a"name='By Kaile uptime' minute=5 job='/usr/sbin/ntpdate time.nist.gov>/dev/null 2>&1'"

172.16.1.41 | SUCCESS => {

   "changed": true,

    "envs": [],

   "jobs": [

       "By Kaile uptime"

    ]

}

 

#檢查定時任務

[root@m01 /]# ansible 172.16.1.41 -a"crontab -l"

172.16.1.41 | SUCCESS | rc=0 >>

#Ansible: By Kaile uptime

05 * * * * /usr/sbin/ntpdate time.nist.gov>/dev/null 2>&1

4.3.5 刪除指定的定時任務

4.3.6 定時任務註釋

 

root@m01 /]# ansible  172.16.1.31 -m cron -a "name='timecrontab'  disabled='yes'job='/usr/sbin/ntpdate  time.nist.gov>/dev/null 2>&1'"

172.16.1.31 | SUCCESS => {

   "changed": true,

   "envs": [],

   "jobs": [

       "time crontab"

    ]

}

[root@m01 /]# ansible  172.16.1.31 -a "crontab -l"

172.16.1.31 | SUCCESS | rc=0 >>

#crond-id-001:time sync  By Kaile

*/5 * * * * /usr/sbin/ntpdate time.nist.gov>/dev/null 2>&1

 

#-002:time backup

00 00 * * * /bin/sh /server/scripts/nfs_back.sh>/dev/null 2>&1

#Ansible: time crontab

#* * * * * /usr/sbin/ntpdate  time.nist.gov >/dev/null 2>&1

 

定時任務開啓註釋信息

[root@m01 /]# ansible  172.16.1.31 -m cron -a "name='timecrontab'  disabled='no'job='/usr/sbin/ntpdate  time.nist.gov>/dev/null 2>&1'"

172.16.1.31 | SUCCESS => {

   "changed": true,

   "envs": [],

   "jobs": [

       "time crontab"

    ]

}

[root@m01 /]# ansible  172.16.1.31 -a "crontab -l"

172.16.1.31 | SUCCESS | rc=0 >>

#crond-id-001:time sync  By Kaile

*/5 * * * * /usr/sbin/ntpdate time.nist.gov>/dev/null 2>&1

 

#-002:time backup

00 00 * * * /bin/sh /server/scripts/nfs_back.sh>/dev/null 2>&1

#Ansible: time crontab

* * * * * /usr/sbin/ntpdate  time.nist.gov >/dev/null 2>&1

 

4.4 環境準備IP列表

服務器說明

外網IP

內網IP

主機名

nginx web

10.0.0.8/24

172.16.1.7/24

web02

NFS存儲服務器

10.0.0.31/24

172.16.1.31/24

nfs01

rsync備份服務器

10.0.0.41/24

172.16.1.41/24

backup

管理服務器

10.0.0.61/24

172.16.1.61/24

m01

第5章 ansible基礎配置

5.1 ansibile命令語法格式

5.2 常用參數模塊

5.3 ansible的配置文件:

[root@m01 ~]# tree /etc/ansible/

/etc/ansible/

├── ansible.cfg     #ansible配置文件

├── hosts           #ansible管理的主機名單(分組)

└── roles          

 

1 directory, 2 files

5.4 編輯ansible的主機配置文件hosts,添加主機組zhaokai

[root@m01 ~]# cp /etc/ansible/hosts{,.bak}  #改前備份可是個好習慣

[root@m01 ~]# tail -6 /etc/ansible/hosts

[guanli]

172.16.1.31

172.16.1.41

172.16.1.61

172.16.1.7

5.5 進行測試

 

如果設置了ssh密鑰連接的話,hosts文件到這裏就算配置完畢了。但是我們還沒有設置,因此還需要對ansible的主機映射文件/etc/ansible/hosts繼續加工

[root@m01 ~]# tail -6 /etc/ansible/hosts

[zhaokai]

172.16.1.31 ansible_ssh_user=root ansible_ssh_pass=登錄密碼

172.16.1.41 ansible_ssh_user=root ansible_ssh_pass=登錄密碼

172.16.1.61 ansible_ssh_user=root ansible_ssh_pass=登錄密碼

172.16.1.7 ansible_ssh_user=root ansible_ssh_pass=登錄密碼

172.16.1.8 ansible_ssh_user=root ansible_ssh_pass=登錄密碼

 

命令說明:

ansible_ssh_user:ssh連接的用戶名

ansible_ssh_pass:ssh連接的密碼

注意:
如果沒有做密鑰認證,hosts又沒有如上方式配置的話,ansible進行遠程連接是會失敗的。

5.6利用ansible遠程批量執行命令

語法:

ansible zhaokai -m command -a 'uptime'
ansible
主機組 -m ansible內置功能模塊名 -a 命令

ansible命令測試

示例1:獲取172.16.1.8的主機的w信息

[root@m01 ~]# ansible 172.16.1.8 -m command -a"w"

172.16.1.8 | SUCCESS | rc=0 >>

 13:44:07 up  5:323 users, load average:0.00, 0.01, 0.05

USER    TTY      FROM              LOGIN@   IDLE  JCPU   PCPU WHAT

root    tty1     -                Sat09   14:16   0.070.07s -bash

root    pts/0    172.16.1.1      Mon23   13:290.08s  0.00s -bash

root    pts/1    m01              13:44    0.000.140.00s /bin/sh -c /usr

 

[root@m01 ~]#

5.7獲取整個zhaokai主機組的對應的“w”信息

[root@m01 ~]# ansible zhaokai -m command -a "w"

172.16.1.8 | SUCCESS | rc=0 >>

 13:45:12 up  5:333 users, load average:0.00, 0.01, 0.05

USER    TTY      FROM              LOGIN@   IDLE  JCPU   PCPU WHAT

root    tty1     -                Sat09   15:21   0.070.07s -bash

root    pts/0    172.16.1.1      Mon23   13:300.08s  0.00s -bash

root    pts/1   m01              13:45    0.000.120.00s /bin/sh -c /usr

 

172.16.1.61 | SUCCESS | rc=0 >>

 21:05:58 up  6:343 users, load average:0.00, 0.01, 0.05

USER    TTY      FROM              LOGIN@   IDLE  JCPU   PCPU WHAT

root    tty1     -                14:41    4:220.070.07s -bash

root    pts/0    172.16.1.1       16:44    2.001.110.67s /usr/bin/python

root    pts/8   m01              21:05    1.000.100.00s /bin/sh -c /usr

 

172.16.1.7 | SUCCESS | rc=0 >>

 12:05:07 up  1:052 users, load average:0.00, 0.01, 0.05

USER    TTY      FROM              LOGIN@   IDLE  JCPU   PCPU WHAT

root    tty1     -                11:00   26:21   0.09s  0.09s -bash

root    pts/0   m01              12:05    0.000.300.00s /bin/sh -c /usr

 

172.16.1.41 | SUCCESS | rc=0 >>

 22:36:51 up 18:392 users, load average:0.00, 0.01, 0.05

USER    TTY      FROM              LOGIN@   IDLE  JCPU   PCPU WHAT

root    tty1     -                03:58   58:54   0.110.11s -bash

root    pts/0   m01              22:36    0.000.320.00s /bin/sh -c /usr

 

172.16.1.31 | SUCCESS | rc=0 >>

 13:45:13 up  6:492 users, load average:0.00, 0.01, 0.05

USER    TTY      FROM              LOGIN@   IDLE  JCPU   PCPU WHAT

root    tty1     -                Mon20   13:42   0.150.15s -bash

root    pts/0   m01              13:45    0.000.300.00s /bin/sh -c /usr

 

[root@m01 ~]#

5.8調用ansible內置的copy模塊

[root@m01 ~]# ansible 172.16.1.8 -m copy -a"src=/etc/hosts dest=/tmp"                  #輸入命令

172.16.1.8 | SUCCESS => {

    "changed": true,

    "checksum":"dba0126bf49ea8d4cdc476828f9edb37085c6afe",

    "dest":"/tmp/hosts",

    "gid":0,

    "group":"root",    #文件複製過去以後的屬組

    "md5sum":"09bad48d0c62411850fd04b68f836335",

    "mode":"0644",     #文件複製過去以後的權限

    "owner":"root",    #文件複製過去以後的屬主

    "secontext":"unconfined_u:object_r:admin_home_t:s0",

    "size":294,

    "src":"/root/.ansible/tmp/ansible-tmp-1489411262.1-267125154401179/source",

    "state":"file",

    "uid":0

}

[root@m01 ~]# ansible 172.16.1.8 -m command -a "ls/tmp" #查看一下對方主機目錄下有啥

172.16.1.8 | SUCCESS | rc=0 >>     

ansible_0qlGau

hosts               #在這裏呢,拷貝成功

pulse-d3qHAaSjkIhZ

pulse-PbcqlrG9QxEK

virtual-root.yrc60j

yum.log

 

[root@m01 ~]# ssh [email protected] "ls /tmp" #ssh再看一下

`[email protected]'s password: `

hosts               #在這裏呢拷貝成功

pulse-d3qHAaSjkIhZ

pulse-PbcqlrG9QxEK

virtual-root.yrc60j

yum.log

[root@m01 ~]#

 

 

 

命令說明:

-m:調用ansible內置模塊   copy  拷貝模塊

-a:接命令。由於調用了copy模塊,命令格式發生改變。src=本地文件路徑 dest=目的地所在路徑

示例4:調用copy模塊實現保存文件的屬性改變

[root@m01 ~]# ansible 172.16.1.8 -m copy -a"src=/etc/hosts dest=/tmp owner=zhaokai group=zhaokai mode=600"

172.16.1.8 | SUCCESS => {

    "changed": true,

    "checksum":"dba0126bf49ea8d4cdc476828f9edb37085c6afe",

    "dest":"/tmp/hosts",

    "gid":502,

    "group":"zhaokai",

    "mode":"0600",

    "owner":"zhaokai",

    "path":"/tmp/hosts",

    "secontext":"unconfined_u:object_r:admin_home_t:s0",

    "size":294,

    "state":"file",

    "uid":502

}

[root@m01 ~]# ssh [email protected] "ls -l/tmp/hosts"

`[email protected]'s password: `

-rw-------. 1 zhaokai zhaokai 2943月  1414:00 /tmp/hosts

 

命令說明:
對於ansible內置模塊的使用,大家參考命令執行後的返回信息裏看就可以了。寫的很清楚。

備註:
copy
模塊,如果複製的對方主機路徑下沒有目錄,那麼會遞歸創建

特別提示:

ansible的部分模塊並不支持
1
)管道符 “|”
2
)重定向 “> < >> <<”
3)
類似toptail -f這種不能即刻返回明確信息的命令
4
*

5.9利用ansible遠程執行各類腳本

5.10先將腳本分發到各個機器上去

[root@m01 ~]# echo "echo '測試成功!'" >>/server/scripts/test.sh

ansible zhaokai -m copy -a"src=/server/scripts/yum.sh dest=/server/scripts/ mode=0755backup=yes"

注意:dest路徑的寫法,若是不存在的目錄,結尾要加斜線(/server/scripts/),否則默認不會創建目標目錄

5.11遠程批量執行腳本

ansible zhaokai -m shell -a"/server/scripts/yum.sh"

示例:

[root@m01 ~]# ansible zhaokai -m command -a "sh/server/scripts/test.sh"

172.16.1.41 | SUCCESS | rc=0 >>

測試成功!

 

172.16.1.31 | SUCCESS | rc=0 >>

測試成功!

 

172.16.1.7 | SUCCESS | rc=0 >>

測試成功!

 

172.16.1.8 | SUCCESS | rc=0 >>

測試成功!

 

172.16.1.61 | SUCCESS | rc=0 >>

測試成功!

5.12 常用模塊:每個模塊就是一個功能

模塊名

作用

command

執行命令模塊(重要)

copy

文件拷貝模塊(重要)

shell

執行shell腳本模塊(重要)

script

執行shell腳本模塊(重要)

file

設定文件屬性模塊

service

系統服務管理模塊

cron

計劃任務管理模塊

yum

yum軟件包安裝管理模塊

synchronize

使用rsync同步文件模塊

第6章 ansible劇本開始

絕對路徑:進入目錄執行一次,下一次如果還需要進入這個目錄,需要再次用絕對路徑進入執行命令。

執行劇本的另一臺機器,如果在掛載中,需要檢查掛載,卸載,不然不執行卡主。

6.1 pyYAML語法規則:

6.2      規則一:縮進

    yaml使用一個固定的縮進風格表示數據層結構關係,Saltstack/ansible需要每個縮進級別由


兩個空格組成。一定不能使用tab

6.3     規則二:冒號

    yaml:

   mykey: my_value

    每個冒號後面一定要有一個空格(以冒號結尾不需要空格,表示文件路徑的模版可以不需要空


格)

6.4     規則三:短橫線

    想要表示列表項,使用一個短橫槓加一個空格。多個項使用同樣的縮進級別作爲同一個列表的


一部分 - hosts

   

6.5 核心規則:有效的利用空格進行劇本的編寫,劇本編寫是不支持tab

     

---

### 劇本的開頭,可以不寫

hosts: all         <- 處理所有服務器,找到所有服務器;  -(空格)hosts:(空格)all

tasks:              <- 劇本所要乾的事情;               (空格)(空格)task:

- command: echo hello oldboy linux.                  (空格)(空格)空格)(空格)-(


空格)模塊名稱:(空格)模塊中對應的功能

          

6.6 劇本編寫內容擴展:劇本任務定義名稱

- hosts:172.16.1.7 <- 處理指定服務器                   -(空格)hosts:(空格)

tasks:                <- 劇本所要乾的事情;               (空格)(空格)task:

- name:

command: echo hello oldboy linux.                  (空格)(空格)空格)(空格)-(


空格)模塊名稱:(空格)模塊中對應的功能

 

6.7     劇本編寫內容擴展:劇本任務編寫定時任務

# ansible all -m cron -a "name='restartnetwork' minute=00 hour=00


#job='/usr/sbin/ntpdate time.nist.gov>/dev/null 2>&1'"

       -hosts: all

     tasks:

        -name: restart-network

         cron: name='restart network' minute=00 hour=00 job='/usr/sbin/ntpdate


time.nist.gov >/dev/null 2>&1'

    #ansible-playbook -C /etc/ansible/network-restart.yml  -vvvx

      說明:測試劇本命令後面可以跟多個-v進行調試檢查

     

6.8      劇本編寫內容擴展:劇本任務編寫多個任務

       -hosts: all

     tasks:

        -name: restart-network

         cron: name='restart network' minute=00 hour=00 job='/usr/sbin/ntpdate


time.nist.gov >/dev/null 2>&1'

        -name: sync time

         cron: name='sync time' minute=*/5 job="/usr/sbin/ntpdatepool.ntp.com >/dev/null 2>&1"

 

6.9      劇本編寫內容擴展:劇本任務編寫多個主機

       -hosts: 172.16.1.7

     tasks:

        -name: restart-network

         cron: name='restart network' minute=00 hour=00 job='/usr/sbin/ntpdate


time.nist.gov >/dev/null 2>&1'

        -name: sync time

         cron: name='sync time' minute=*/5 job="/usr/sbin/ntpdatepool.ntp.com


>/dev/null 2>&1"

       -hosts: 172.16.1.31

     tasks:

        -name: show ip addr to file

         shell: echo $(hostname -i) >> /tmp/ip.txt

 

第7章 常用模塊

 

ansible oldboy -m authorized_key -a "key='公鑰文件裏面的內容,鎖頭裏面的內容'  user=root" -k

 

 

#實戰操作

[root@m01 .ssh]# ansible 172.16.1.41 -mauthorized_key -a "key='ssh-dss AAAAB3NzaC1kc3MAAACBAOkVRb7MpNPcYR6HbR5Q6iT2028sSgNlaKX8yXEHDp/YGuobBzYvHKvLMhokak4Eo2DE/g9n29z+J4krWGpWZz9680YaT8T8Z0qmMXorK44FuAQqcifoyvMlW97DPvF+H8ilYNHnSE1D2EY4TXU1ruNPGAeaqLaUr6xcP7enc+hVAAAAFQCv0mTqYI6uraAAwV+YqV0fwynuSwAAAIEA54se+MAC8WxsugYsVEkvCnSWhAhB/KLsBCk5k7Y8pTdirnJ/ZviXM2/GTsPYdMHw9cZFyT4L3lsflorcj9gjsavWiyK9/GDerBe1vXg6JyRXstgWax2hIpH702dzSuENXSlbTua1tGNdBGt2A+mKQouBKqGMgyz3SWoF3CEb0gkAAACBAIUnpl1V9+w4tgccRoVUcnRx7H3hkaVSGzFXz1KxNGyASWVtgBdDn9+VT4T+U9JE9hlwKx4s9ySRyYvivZnT/6kZODleFVvVckr8jEdV/ILlesu+wQ31kLETiaOli5EGCyJmTNNK6x2Uz1Dq3rK4Rlb+tBSH3rMLzFp4aYBP+i+9root@m01'  user=root" -k

SSH password:

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章