美文网首页
saltstack 的日常使用 (三)

saltstack 的日常使用 (三)

作者: Medivh_ | 来源:发表于2017-10-19 09:50 被阅读40次

    更多关注:http://www.mknight.cn/

    salt 修改 minion id

    minion id

    salt 默认使用hostname作为minion ID。如果后期需要修改主机名,就要注意及时更改minion ID。

    修改流程

    • 停止服务
      service salt-minion stop
      
    • 删除minion公钥文件
      rm /etc/salt/pki/minion/minion.pub
      rm /etc/salt/pki/minion/minion.pem
      
    • 修改新的minion id
      echo NewId > /etc/salt/minion_id
      
    • master 删除旧的Key
      salt-key -d oldId
      
    • minion重启
      service salt-minion start
      
    • master重新接受
      salt-key -a NewId
      

    查看host信息

    管理本地hosts文件,服务器比较多,需要增加一个本地域名解析需要耗费比较长的时间,请看如下alt.modules.hosts模块使用详解.

    添加host

    salt.modules.hosts.add_host(ip, alias)
    增加hosts配置到hosts文件中
    范例:

    # salt '*' hosts.add_host 1.1.1.1 ttlsa.com
    localhost.localdomain:
    True
    

    salt.modules.hosts.get_alias(ip)

    范例:

    # salt '*' hosts.get_alias 1.1.1.1
    localhost.localdomain:
    - baidu.com
    

    通过主机名获取IP地址列表

    salt.modules.hosts.get_ip(host)
    范例:

    
    # salt '*' hosts.get_ip ttlsa.com
    localhost.localdomain:
    1.1.1.1
    

    判断IP与别名是否配对

    salt.modules.hosts.has_pair(ip, alias)
    范例:

    # salt '*' hosts.has_pair 1.1.1.1 ttlsa.com
    localhost.localdomain:
    True
    

    列出hosts列表

    salt.modules.hosts.list_hosts()
    CLI 范例:

    # salt '*' hosts.list_hosts
    localhost.localdomain:
    ----------
    1.1.1.1:
    - ttlsa.com
    127.0.0.1:
    - localhost
    - localhost.localdomain
    ::1:
    - localhost
    - localhost.localdomain
    

    删除host条目

    salt.modules.hosts.rm_host(ip, alias)
    范例:

    # salt '*' hosts.rm_host 1.1.1.1 baidu.com
    localhost.localdomain:
    True
    

    更新hosts条目

    salt.modules.hosts.set_host(ip, alias)
    通过ip地址修改主机名,如果ip不存在则增加条目
    范例:

    # salt '*' hosts.set_host 1.1.1.1 baidu.com
    localhost.localdomain:
     True
    

    管理用户

    使用Salt在多平台进行用户管理将变得非常简单。 user模块允许管理员管理(原文为present)账户各个方面和删除(absent)账户。本篇文章将描述user模块的各个组件,并将给出一个管理账户的state例子.

    user.present

    user.present: 确保指定的账户名存在,并指定其对应的属性. 这些属性包括如下内容:

    name: 指定需要管理的账户名.

    uid: 指定uid, 如果不设置将配自动分配下一个有效的uid.

    gid: 指定默认的组id(group id)

    gid_from_name: 如果设置为True,默认的组id将自动设置为和本用户同名的组id

    groups: 分配给该用户的组列表(a list of groups). 如果组在minion上不存在,则本state会报错. 如果设置会空,将会删除本用户所属的除了默认组之外的其他组

    optional_groups: 分配给用户的组列表。 如果组在minion上不存在,则state会忽略它.

    home: 关于用户的家目录(home directory).

    password: 设置用户hash之后的密码.

    enforce_password: 当设置为False时,如果设置的password与用户原密码不同,将保持原密码不做更改.如果没有设置password选项,该选项将自动忽略掉.

    shell: 指定用户的login shell。 默认将设置为系统默认shell。

    unique: UID唯一,默认为True.

    system: 从FIRST_SYSTEM_UID和LAST_SYSTEM_UID间选择一个随机的UID.

    用户描述选项(GECOS)支持(当前只支持Linux和FreeBSD系统):

    fullname: 指定用户全名(full name).

    roomnumber: 指定用户的房间号.

    workphone: 指定用户的工作电话号码.

    homephone: 指定用户的家庭电话号码.

    user.absent

    user.absent用于删除用户.其有以下选项:

    name: 指定需要删除的用户名.

    purge: 设置清除用户的文件(家目录)

    force: 如果用户当前已登录,则absent state会失败. 设置force选项为True时,就算用户当前处于登录状态也会删除本用户.

    当管理用户时,至少需要指定user.present或user.absent。 其他选项是可选的,比如uid、gid、home等选项没有指定是,将自动使用下一个有效的或者系统默认的.

    users.sls

    下面将列出一个管理cedwards用户的state声明例子. 本state中定义了fullname、shell、home、uid、gid和groups列:

    cedwards:
      user.present:
        - fullname: Christer Edwards
        - password: '$6$JyhDBiOi5ZyvaDWm$.5QKIgCtYOLXpLDCc9HMJ8fnAq.c3enJ32BIWGcuKt/y2awHL3w2PlNLxJD9gHE/FtKkG348P8HArXGSkd5uC/'
        - shell: /usr/local/bin/bash
        - home: /home/cedwards
        - uid: 1001
        - gid: 1001
        - groups:
          - wheel
    jdoe:
      user.absent
    

    更多关注:http://www.mknight.cn/

    相关文章

      网友评论

          本文标题:saltstack 的日常使用 (三)

          本文链接:https://www.haomeiwen.com/subject/xdtuuxtx.html