部署Ansible

文章目录

  • 部署Ansible
    • 1. Ansible清单
      • 1.1 清单的作用
      • 1.2清单文件的位置
      • 1.3 清单文件的优先级
    • 2. Ansible配置文件
      • 2.1 ansible配置文件详解
        • 2.1.1 [defaults]修改默认设置
        • 2.1.2 [privilege_escalation]提权
      • 2.2 配置文件注释
    • 3. Ansible查看帮助文档
    • 4. Ansible常用模块
      • 4.1 user模块

1. Ansible清单

1.1 清单的作用

作用:定义了ansible服务器管理的一批受管主机,通过执行Ansible模块,在调用过程中直接对清单中的主机进行批量管理

1.2清单文件的位置

清单配置文件的默认位置在 /etc/ansible/hosts,可以通过修改该配置文件来指定不同的默认清单文件。可以使用不同的格式编写此文件,包括INI样式和YAML。

对于默认清单我们一般不使用,通常为了方便每一位管理者的管理,管理者均会在自己的文件夹目录中设置自己的清单目录。

1.3 清单文件的优先级

Ansible配置是以ini格式来存储数据的,在Ansible中,几乎所有配置都可以通过Ansible的Playbook或者环境变量来重新赋值。在运行Ansible命令时,命令将会按照预先设定的顺序查找配置文件。

  1. 首先使用 ANSIBLE_CONFIG 变量定义的文件位置
  2. 如果没有使用参数去定义文件位置,就会在执行 ansbile 命令的当前目录中查找是否有 ansible.cfg 文件
    ./anisble.cfg
  3. 如果没找到,再从当前用户的家目录下查找是否有 .ansible.cfg 文件
    ~/.ansible.cfg
  4. 如果还找不到,就使用默认清单 /etc/ansible/anisble.cfg
    /etc/ansible/ansible.cfg

简单来说,优先级为:

ANSIBLE_CONFIG > 当前目录下的ansible.cfg > ~/.ansible.cfg > /etc/ansible/ansible.cfg

要检查当前使用的配置文件的位置,使用 ansible --version 命令

[root@node1 ~]# ansible --version
ansible 2.9.23config file = /etc/ansible/ansible.cfg       //在这里可以看到我使用的是默认配置文件configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python3.6/site-packages/ansibleexecutable location = /usr/bin/ansiblepython version = 3.6.8 (default, Dec  3 2020, 18:11:24) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]
[root@node1 ~]#

2. Ansible配置文件

2.1 ansible配置文件详解

Ansible配置文件由几个部分组成,每一部分含有以键值对形式定义的设置。部分标题以中括号括起来。对于基本操作,请使用以下两部分:

2.1.1 [defaults]修改默认设置

  • [defaults] 部分设置Ansible操作的默认值

例如:

[defaults]
inventory = /etc/ansible/inventory
remote_user = user
ask_pass = false

配置项说明:

  • inventory: 定义默认使用的主机清单
  • remote_user: ansible在操作远程主机时,使用远程主机上的哪个用户身份,默认是root
  • ask_pass: 执行ansible命令是否询问ssh密码

2.1.2 [privilege_escalation]提权

  • [privilege_escalation] 配置Ansible如何在受管主机上执行特权升级

例如:

[privilege_escalation]
become =Ture
become_method = sudo
become_user = root
become_ask_pass = False

配置项说明:

  • become: 是否允许远程主机上的普通用户进行提权
  • become_method: 如果允许提权,使用何种提权方式,默认是sudo
  • become_user: 设置提权到哪个用户,默认是root
  • become_ask_pass: 提权时,是否提示密码验证,默认时flase

2.2 配置文件注释

Ansible配置文件允许使用两种注释字符:井号或分号

位于行开头的#会注释掉整行。它不能和命令位于同一行中,如:

//正确
#become_method=sudo//错误
become_method=#sudo

针对上面那种情况,我们可以使用分号来进行注释。分号字符可以注释掉所在行其右侧的所有内容。它可以和指令位于同一行中,只要该指令在其左侧,如:

become_method=;sudo              //这里注释掉了sudo

3. Ansible查看帮助文档

这里我们使用ansible-doc获取command模块的使用方式
记住这个命令就没有不会用的模块,Ansible是一个非常容易上手的工具。

[root@node1 ~]# ansible-doc command
> COMMAND    (/usr/lib/python3.6/site-packages/ansible/modules/commands/command.py)The `command' module takes the command name followed by a listof space-delimited arguments. The given command will beexecuted on all selected nodes. The command(s) will not beprocessed through the shell, so variables like `$HOME' andoperations like `"<"', `">"', `"|"', `";"' and `"&"' will notwork. Use the [shell] module if you need these features. Tocreate `command' tasks that are easier to read than the ones......

因为信息太多,需要按下 “:” 之后再按下 “/” 之后再输入 <要查看部分的关键字>

最常用的要查看部分的关键字是:example

  • 列出所有的核心模块和附加模块
[root@node1 ~]# ansible-doc -l
a10_server                                                    Manage A10 Networ...
a10_server_axapi3                                             Manage A10 Networ...
a10_service_group                                             Manage A10 Networ...
a10_virtual_server                                            Manage A10 Networ...
aci_aaa_user                                                  Manage AAA users ...
aci_aaa_user_certificate                                      Manage AAA user c...
aci_access_port_block_to_access_port                          Manage port block...
aci_access_port_to_interface_policy_leaf_profile              Manage Fabric int...
aci_access_sub_port_block_to_access_port                      Manage sub port b...
aci_aep                                                       Manage attachable...
aci_aep_to_domain                                             Bind AEPs to Phys
......
  • 查询某个模块的使用方法,比较简洁的信息
ansible-doc -s modulename如:
[root@node1 ~]# ansible-doc -s ping
- name: Try to connect to host, verify a usable python and return `pong' on successping:data:                  # Data to return for the `ping' return value. If thisparameter is set to`crash', the modulewill cause anexception.
[root@node1 ~]#

Ansible官方文档:https://docs.ansible.com/ansible/latest/index.html

4. Ansible常用模块

Ansible模块分三种类型:

核心模块(code module)

附加模块(extra module)

用户自定义模块(consume module)

4.1 user模块

user模块主要用于远程批量创建用户信息

官方文档:https://docs.ansible.com/ansible/latest/modules/user_module.html#user-module

参数 选项/默认值 释义
password 指定密码
name 指定用户名
uid 指定用户uid
group 指定用户主要属于哪个组
groups 指定用户属于哪个附加组信息
shell /bin/bash 或 /sbin/nologin 指定是否能够登录
create_home yes/no 是否创建家目录信息
home 指定家目录创建在什么路径 默认/home

password设置密码时不能使用明文方式,只能使用密文方式

可以给用户设置密码,还可以给用户修改密码

[root@node1 ~]# python3         //这里使用python环境先给密码加密
Python 3.6.8 (default, Dec  3 2020, 18:11:24)
[GCC 8.4.1 20200928 (Red Hat 8.4.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt
>>> crypt.crypt('123456')
'$6$VhH3wY5ue6C.40aL$OzBiBs19nMbQZCnNnKXY5cPemxJSPlt2C1JP.XxAyegC.3Lyn1XnneHE2rJ7iGkaKXBe.8TBKo8KHP4wUSAsH/'          //得到加密后的密码
>>> exit()
[root@node1 ~]# ansible all -m user -a 'name=test uid=1234 password="$6$VhH3wY5ue6C.40aL$OzBiBs19nMbQZCnNnKXY5cPemxJSPlt2C1JP.XxAyegC.3Lyn1XnneHE2rJ7iGkaKXBe.8TBKo8KHP4wUSAsH/"'           //这里输入加密后的密码
192.168.100.110 | CHANGED => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"},"changed": true,"comment": "","create_home": true,"group": 1234,"home": "/home/test","name": "test","password": "NOT_LOGGING_PASSWORD","shell": "/bin/bash","state": "present","system": false,"uid": 1234
}
[root@node1 ~]# //在node2中查看是否创建成功
[root@node2 ~]# id test
uid=1234(test) gid=1234(test) groups=1234(test)

管理Ansible配置文件相关推荐

  1. 02管理Ansible配置文件

    管理Ansible配置文件 1.配置Ansible 2.配置文件的优先级 3管理配置文件的设置 4.配置连接 4.1清单位置 4.2连接设置 4.3升级特权 4.4非ssh连接 4.5配置文件注释 5 ...

  2. Chapter2.2 管理Ansible配置文件

    2.管理Ansible配置文件 2.1 目标 学完这一章节,学员可以描述Ansible配置文件的位置,Ansible如何选择配置文件,如何修改配置文件. 2.2 配置Ansible Ansible的配 ...

  3. ansible自动化运维详解(一)ansible的安装部署、参数使用、清单管理、配置文件参数及用户级ansible操作环境构建

    文章目录 ansible自动化运维详解(一)ansible的安装部署.参数使用.清单管理.配置文件参数及用户级ansible操作环境构建 一.ansible的安装部署 1.1.ansible简介 1. ...

  4. ansible配置文件介绍

    文章目录 ansible主目录结构 ansible配置文件优先级 主配置文件/etc/ansible/ansible.cfg解析 [defaults] 默认配置 常用参数 主机清单 拓展 ansibl ...

  5. Linux 用户篇——用户管理的配置文件

    一.用户管理之配置文件的重要性 在Linux系统中,用户账户的相关信息是存放在相关配置文件中.而Linux安全系统的核心是用户账号,用户对系统中各种对象的访问权限取决于他们登录系统时用的账户,并且Li ...

  6. linux emacs配置文件,[z]使用.emacs.d目录管理Emacs配置文件

    第一启动emacs会在-目录下创建.emacs.d目录 使用.emacs.d目录管理Emacs配置文件 参考:Declaring .emacs Bankruptcy Emacs的默认配置文件是.ema ...

  7. ansible 配置文件

    配置文件 两个核心文件:ansible.cfg和hosts文件,默认都存放在/etc/ansible目录下. ansible.cfg:主要设置一些ansible初始化的信息,比如日志存放路径.模块.插 ...

  8. Ansible配置文件ansible.cfg

    通常每个应用程序都会有相应的配置文件去设置应用程序运行时需要使用的一些参数,如数据存储地址,日志存储地址,客户端连接端口或者集群数据同步端口等等,ansible也不另外,他也有一个配置文件ansibl ...

  9. Ansible配置文件ansible.cfg详解

    Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. 前言 此时外面小雨淅淅沥沥的下着,周末,慵懒的周末,无聊到极点才打开电脑,回头一看 ...

最新文章

  1. C++——运算符的重载---以成员函数方式重载---以友元函数方式重载
  2. Android 数据存储和文件使用案例分析
  3. 什么样的项目适合自动化测试
  4. sqlite 自动增长
  5. 联合索引会创建几个索引_【1033期】分别谈谈联合索引生效和失效的条件
  6. 模型驱动开发 - 产品线架构的演进
  7. Python程序打包exe文件(pyinstaller)
  8. 用C语言做九九乘法表
  9. 史上最全的Java从入门到精通,播放最多的Java视频教程
  10. kettle连接oracle汉字乱码
  11. LeetCode 每日一题331. 验证二叉树的前序序列化
  12. 给大家推荐一些好用的国内外免费图床(可外链的免费相册)
  13. Python基础 Day03 列表
  14. 计算机基础 华师在线,华师在线计算机基础试题答案.doc
  15. 页面提示“百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:ht”
  16. ios点击推送闪退_升级iOS14.1之后,我的6S崩溃了|ios|ios系统|手机|闪退
  17. 计算机硬件被网游封了是怎么回事,电脑硬件市场没落的真正原因:网络游戏对电脑硬件的要求太低了...
  18. 【算法】在N个乱序数字中查找第K大的数字
  19. VS shortcuts
  20. 华为智慧屏和鸿蒙系统对比,华为s55和v55i对比_华为智慧屏s55和v55i哪个好

热门文章

  1. 计算机中的虚拟ip,如何设置电脑虚拟IP
  2. 考CISP必须要做哪些准备?
  3. solidworks 3D模型文件导出到tanner ledit版图软件中
  4. 单片机旋转led程序c语言,[ 单片机 ] 旋转LED制做过程
  5. Html点击按钮自动刷新页面问题
  6. 基于MATLAB的仿射变换/透射变换/道路检测/车牌检测
  7. uniapp 商城实例
  8. 数电实验二 常用中规模组合逻辑电路的设计及应用
  9. Deep Learning × ECG (1) :关于心律失常ECG的基础常识
  10. vue cli3 添加 px2rem-loader