设为首页 收藏本站
查看: 793|回复: 0

[经验分享] ansible自动化运维必备工具详解

[复制链接]

尚未签到

发表于 2018-7-29 11:39:00 | 显示全部楼层 |阅读模式
第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主机功能库 ) ,PyYAML和Jinja2 ( 模板化 ) 三个关键模块实现;
      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

  •   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:32,  3 users, load average:0.00, 0.01, 0.05
  USER    TTY      FROM              LOGIN@  >
  root    tty1     -                Sat09   14:16   0.07s  0.07s -bash
  root    pts/0    172.16.1.1      Mon23   13:29m  0.08s  0.00s -bash
  root    pts/1    m01              13:44    0.00s  0.14s  0.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:33,  3 users, load average:0.00, 0.01, 0.05
  USER    TTY      FROM              LOGIN@  >
  root    tty1     -                Sat09   15:21   0.07s  0.07s -bash
  root    pts/0    172.16.1.1      Mon23   13:30m  0.08s  0.00s -bash
  root    pts/1   m01              13:45    0.00s  0.12s  0.00s /bin/sh -c /usr
  
  172.16.1.61 | SUCCESS | rc=0 >>
   21:05:58 up  6:34,  3 users, load average:0.00, 0.01, 0.05
  USER    TTY      FROM              LOGIN@  >
  root    tty1     -                14:41    4:22m  0.07s  0.07s -bash
  root    pts/0    172.16.1.1       16:44    2.00s  1.11s  0.67s /usr/bin/python
  root    pts/8   m01              21:05    1.00s  0.10s  0.00s /bin/sh -c /usr
  
  172.16.1.7 | SUCCESS | rc=0 >>
   12:05:07 up  1:05,  2 users, load average:0.00, 0.01, 0.05
  USER    TTY      FROM              LOGIN@  >
  root    tty1     -                11:00   26:21   0.09s  0.09s -bash
  root    pts/0   m01              12:05    0.00s  0.30s  0.00s /bin/sh -c /usr
  
  172.16.1.41 | SUCCESS | rc=0 >>
   22:36:51 up 18:39,  2 users, load average:0.00, 0.01, 0.05
  USER    TTY      FROM              LOGIN@  >
  root    tty1     -                03:58   58:54   0.11s  0.11s -bash
  root    pts/0   m01              22:36    0.00s  0.32s  0.00s /bin/sh -c /usr
  
  172.16.1.31 | SUCCESS | rc=0 >>
   13:45:13 up  6:49,  2 users, load average:0.00, 0.01, 0.05
  USER    TTY      FROM              LOGIN@  >
  root    tty1     -                Mon20   13:42   0.15s  0.15s -bash
  root    pts/0   m01              13:45    0.00s  0.30s  0.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 root@172.16.1.8 "ls /tmp" #用ssh再看一下
  `root@172.16.1.8'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 root@172.16.1.8 "ls -l/tmp/hosts"
  `root@172.16.1.8's password: `
  -rw-------. 1 zhaokai zhaokai 2943月  1414:00 /tmp/hosts
  
命令说明:对于ansible内置模块的使用,大家参考命令执行后的返回信息里看就可以了。写的很清楚。  备注:
  copy模块,如果复制的对方主机路径下没有目录,那么会递归创建
  特别提示:
  ansible的部分模块并不支持
  1)管道符 “|”
  2)重定向 “> < >> <<”
  3)类似top,tail -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:

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-542975-1-1.html 上篇帖子: ansible机器清单与主机匹配模式(inventory file 与hosts patterns) 下篇帖子: ansible入门篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表