saltsack自动化配置day01:之使用SALT-SSH安装SALT-MINION

本文介绍如何使用SaltSSH实现远程服务器的自动化部署流程,包括安装salt-minion、配置roster文件及state.sls文件等关键步骤。

一、首先在master端安装salt-ssh,我将通过salt-ssh来为minion服务器执行安装命令。

yum -y install salt-ssh

二、部署roster

修改/etc/salt/roster的配置文件

roster配置文件的配置选项有:

# target的信息
    host:        # 远端主机的ip地址或者dns域名
    user:        # 登录的用户
    passwd:      # 用户密码,如果不使用此选项,则默认使用秘钥方式
# 可选的部分
    port:        #ssh端口
    sudo:        #可以通过sudo
    tty:         # 如果设置了sudo,设置这个参数为true
    priv:        # ssh秘钥的文件路径
    timeout:     # 当建立链接时等待响应时间的秒数
    minion_opts: # minion的位置路径
    thin_dir:    # target系统的存储目录,默认是/tmp/salt-<hash>
    cmd_umask:   # 使用salt-call命令的umask值 

我使用os.system修改roster文件:

views.py

def serverAdd(request):
    result = ''
    if request.method == "POST":
        form = autoArrMinionForm(request.POST)
        if form.is_valid():
            ip = request.POST.get('add_ip') # 需要安装minion端的ip
            username = request.POST.get('add_username') # 需要安装minion端的用户名
            password = request.POST.get('add_password') # 需要安装minion端的密码
            try:
                os.system("echo '"+ip+":'>> /etc/salt/roster && \
                            echo '  host: " +ip+ "'>> /etc/salt/roster && \
                            echo '  user: " +username+ "'>> /etc/salt/roster && \
                            echo '  passwd: " +password+ "'>> /etc/salt/roster && \
                            echo '  sudo: True'>> /etc/salt/roster && \
                            echo '  tty: True'>> /etc/salt/roster && \
                            echo '  timeout: 10'>> /etc/salt/roster")
                os.system("salt-ssh '" + ip + "' -ir 'easy_install certifi'") # 安装cretifi模块
                (status_gethostname, resultgethostname) = subprocess.getstatusoutput("salt-ssh -ir '" + ip + "' 'hostname'") # 获取hostname
                os.system("salt-ssh '" + ip + "' -ir 'echo ''"+ip+"' '"+resultgethostname+"''>> /etc/hosts'") # 添加hosts
                (status, result) = subprocess.getstatusoutput("salt-ssh -i '"+ip+"' state.sls minions.install") # 执行安装命令,并返回结果
            except:
                result = "无法连接该主机,请检查ip和用户密码是否正确!"
        else:
            result = "请填写正确的ip和用户名密码"
    else:
        form = autoArrMinionForm()
    re = {
        "form": form,
        "result": result
    }
    return  render(request, "serveradd.html", re)

三、配置state.sls文件结构

1、创建目录:
mkdir -p /srv/salt/minions
mkdir -p /srv/salt/minions/conf 
mkdir -p /srv/salt/minions/yum.repos.d
2、编写.sls文件:
vim install.sls​
minion_yum:
  file.recurse:
    - name: /etc/yum.repos.d
    - source: salt://minions/yum.repos.d ##提前准备的yum文件路径
    - user: root
    - group: root
    - file_mode: 644
    - dir_mode: 755
    - include_empty: True
minion_install:
  pkg.installed:
    - pkgs:
      - salt-minion
    - require:
      - file: minion_yum
    - unless: rpm -qa | grep salt-minion
minion_conf:
  file.managed:
    - name: /etc/salt/minion
    - source: salt://minions/conf/minion  ##minion端需要配置的minion主配置文件
    - user: root
    - group: root
    - mode: 640
    - template: jinja
    - defaults:
      minion_id: {{grains['fqdn_ip4'][0]}}        ##这里grains是收集minion端/etc/hosts文件IP和主机名的
    - require:
      - pkg: minion_install
minion_service:
  service.running:
    - name: salt-minion
    - enable: True
    - require:
      - file: minion_conf
3、编写minion主文件
master: 10.62.83.211
id: {{ minion_id }} #这里的id会被解析成install.sls中的minion_id
4、拷贝yum源文件到yum.repos.d

可从/etc/yum.repos.d拷贝

cp CentOS-Base.repo /srv/salt/minions/yum.repos.d/
cp epel.repo /srv/salt/minions/yum.repos.d/​
最终的目录结构为:
[root@mykurol /]# tree /srv
/srv
`-- salt
    `-- minions
        |-- conf
        |   `-- minion
        |-- install.sls
        `-- yum.repos.d
            |-- CentOS-Base.repo
            `-- epel.repo
 
4 directories, 4 files

转载于:https://www.cnblogs.com/luoahong/articles/9593835.html

AI-PPT 一键生成 PPT:用户输入主题关键词,AI-PPT 可快速生成完整 PPT,涵盖标题、正文、段落结构等,还支持对话式生成,用户可在 AI 交互窗口边查看边修改。 文档导入转 PPT:支持导入 Word、Excel、PDF 等多种格式文档,自动解析文档结构,将其转换为结构清晰、排版规范的 PPT,有保持原文和智能优化两种模式。 AI-PPT 对话 实时问答:用户上传 PPT 或 PPTX 文件后,可针对演示内容进行提问,AI 实时提供解答,帮助用户快速理解内容。 多角度内容分析:对 PPT 内容进行多角度分析,提供全面视野,帮助用户更好地把握内容结构和重点。 多语言对话支持:支持多语言对话,打破语言障碍,方便不同语言背景的用户使用。 AI - 绘图 文生图:用户输入文字描述,即可生成符合语义的不同风格图像,如油画、水彩、中国画等,支持中英文双语输入。 图生图:用户上传图片并输入描述,AI - 绘图能够根据参考图和描述生成新的风格化图像,适用于需要特定风格或元素的创作需求。 图像编辑:提供如 AI 超清、AI 扩图、AI 无痕消除等功能,用户可以上传图片进行细节修改和优化,提升图片质量。 AI - 文稿 文案生成:能够根据用户需求生成多种类型的文章,如市场营销文案、技术文档、内部沟通内容等,提升文案质量和创作效率。 文章润色:对已有文章进行改善和优化,包括语言表达、逻辑连贯性、内容流畅度等方面,使文章更符合用户期望和风格。 文章续写:AI 技术理解文本语境,为用户提供新的想法、补充资料或更深层次的见解,帮助用户丰富文档内容。 AI - 医生 智能健康咨询:包括症状自查,用户输入不适症状,AI 结合病史等信息提供疾病可能性分析与初步建议;用药指导,支持查询药品适应症、禁忌症等,并预警潜在冲突;中医辨证,提供体质辨识与调理建议。 医学报告解读:用户上传体检报告
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值