标签: automation

如何使用密码自动进行SSH登录?

如何使用密码自动进行SSH登录?我正在配置我的测试虚拟机,所以没有考虑高安全性。选择 SSH 以获得可接受的安全性,且配置最少。

前任)

echo password | ssh id@server
Run Code Online (Sandbox Code Playgroud)

这不起作用。

我记得我是用一些技巧来做到这一点的,有人指导我,但我现在不记得我使用的技巧了......

automation ssh password

592
推荐指数
10
解决办法
170万
查看次数

在 Ubuntu 上自动安装 postfix

我的系统配置脚本执行“apt-get install -y postfix”。不幸的是,当 postfix 安装程序显示配置屏幕时,脚本会停止。有没有一种方法可以强制 postfix 在安装过程中使用默认值,以便自动化脚本可以持续到最后?

postfix 安装程序是否可能会检查 /etc/postfix 中的现有配置,如果存在,不要用配置屏幕打扰用户?

automation ubuntu postfix installation apt

74
推荐指数
2
解决办法
4万
查看次数

Ssh,在登录时运行命令,然后保持登录状态?

我用expect试过这个,但没有用:它最后关闭了连接。

我们可以通过 ssh 运行一个脚本来登录远程机器,运行命令,而不是断开连接吗?

所以在一台机器上ssh,cd到某某目录,然后运行一条命令,保持登录状态。

-乔纳森

(希望我用过)

#!/usr/bin/expect -f
set password [lrange $argv 0 0]
spawn ssh root@marlboro "cd /tmp; ls -altr | tail"
expect "?assword:*"
send -- "$password\r"
send -- "\r"
interact
Run Code Online (Sandbox Code Playgroud)

automation linux ssh command-line-interface

34
推荐指数
3
解决办法
4万
查看次数

自动配置新计算机

我公司正在将所有用户从旧的 Windows XP 计算机升级到新的四核 Win7 计算机。这是一件好事——我们早就应该升级我们的工作站了——但我现在花了大量时间配置新计算机。有没有办法自动化这个过程?

我几乎在每台计算机上执行的步骤:

  • 运行 Win7 设置过程(我们主要做 HP,所以我们得到了愚蠢的“计算机又是个人的”。
  • 卸载英国媒体报道软件(norton、bing bar、roxio 等)
  • 安装更新
  • 添加到域并配置网络设置
  • 安装 Office 和其他公司特定的应用程序
  • 配置重要的快捷方式(任务栏上的 Outlook)

在那之后我还做了一些其他的事情,这些事情可以很好地自动化,但由于许可证密钥、密码等原因,不太可能。

  • 配置 Outlook
  • 使用简单的传输向导拉入文件/设置
  • 映射网络驱动器

我知道可以创建计算机的完整映像,但是如何使用不同的硬件/驱动程序?Win7 许可证密钥呢?如果有一种方法可以使这项工作发挥作用,那么最好的(最好是免费/开源)软件是什么?

automation deployment configuration windows-7

32
推荐指数
3
解决办法
7680
查看次数

如何在不使用作业的情况下并行运行我的 PowerShell 脚本?

如果我有一个脚本需要在多台计算机上运行,​​或者有多个不同的参数,我如何并行执行它,而不必产生产生新PSJobStart-Job的开销?

例如,我想重新同步所有域成员的时间,如下所示:

$computers = Get-ADComputer -filter * |Select-Object -ExpandProperty dnsHostName
$creds = Get-Credential domain\user
foreach($computer in $computers)
{
    $session = New-PSSession -ComputerName $computer -Credential $creds
    Invoke-Command -Session $session -ScriptBlock { w32tm /resync /nowait /rediscover }
}
Run Code Online (Sandbox Code Playgroud)

但我不想等待每个 PSSession 连接并调用命令。如果没有乔布斯,这如何并行完成?

automation powershell performance

32
推荐指数
2
解决办法
5万
查看次数

Linux 管理员如何提高他们的 shell 脚本和自动化技能?

在我的组织中,我与一群 NOC 员工、初出茅庐的初级工程师和少数高级工程师一起工作;所有这些都专注于 Linux。公司培养人才的一个有趣步骤是,有一条从 NOC 到高级工程队伍的途径。将人才库视为一个相对较新的人,我发现随着时间的推移,技能组合存在分歧……

  • 有些工程师非常了解一种或几种特定技术并不断沉浸其中……例如 MySQL、防火墙、SAN 存储、负载平衡器……
  • 还有其他人是通才,可以驾驭多种技术。
  • 所有人都学习了足够的 Linux(命令、进程)来做他们每天需要和使用的事情。

一些员工之间的一个区别因素是他们对脚本、自动化和配置管理方法的接受程度。例如,我们有两名工程师负责 Amazon AWS CloudFormation的大部分工作,另一名负责处理大部分Puppet基础设施。也许四分之一的工程师精通 BASH shell 脚本。

就业市场DevOps 技能的需求非常高的背景下,我很好奇其他组织如何促进这些技能的发展并培养他们的内部人才。脚本编写似乎不是一个特别可教的概念。

  • 系统管理员如何改进他们的 shell 脚本?
  • 没有/无法跟上 DevOps 范式的工程师还有一席之地吗?
  • 我们是否只是假设随着这些技术的发展,有些人会被抛在后面?可以吗?

automation scripting linux configuration-management puppet

30
推荐指数
4
解决办法
4276
查看次数

Ansible:如果满足某个条件,则有条件地在 vars 文件中定义变量

根据定义到 group_vars 中的变量的值(真/假),我试图在 vars 文件中定义一些变量。它们的值取决于组变量的值。

我当前的 var 文件如下所示:

{% if my_group_var %}
test:
   var1: value
   var2: value
   ...
   varn: value
{% else %}
test:
   var1: other_value
   var2: other_value
   ...
   varn: other_value
{% endif %}
Run Code Online (Sandbox Code Playgroud)

对于我的每一个角色,我都使用了一个定义在这个文件中的变量。

我的测试手册如下所示:

- name: blabla
  hosts: blabla
  vars_files:
     - <path>/test_vars.yml
  roles: blabla 
Run Code Online (Sandbox Code Playgroud)

运行剧本后我收到的错误是:

{% if my_group_var %}
 ^ here

exception type: <class 'yaml.scanner.ScannerError'>
exception: while scanning for the next token
found character that cannot start any token
  in "<unicode string>"
Run Code Online (Sandbox Code Playgroud)

我在这里做一些愚蠢的事情还是什至不支持?我试图找到另一种定义这些变量的方法(我有很多),但我没有设法在这里得到一些功能。有什么建议?

automation ansible jinja

30
推荐指数
3
解决办法
8万
查看次数

自动化服务器部署

我发现我经常为我的许多客户设置几乎相同的服务器和 VPS,这可能非常耗时。通常,每次部署之间唯一变化的是要提供服务的不同网站。有没有一种简单的方法可以使所有这些自动化并消除设置 56 个相同服务器的无聊单调?

到目前为止,我部署的服务器只是 Ubuntu,但我可能会开始使用其他 linux 操作系统甚至 Windows。到目前为止,我已经看过 Capistrano,但它似乎专注于编写小的 ruby​​ 程序来完成这项工作,而我根本没有任何知识

automation vps deployment

27
推荐指数
3
解决办法
4495
查看次数

更改 MySQL 中所有表中所有列的字符集和排序规则

我需要在所有表的所有列中执行这些语句。

alter table table_name charset=utf8;
alter table table_name alter column column_name charset=utf8;
Run Code Online (Sandbox Code Playgroud)

是否可以在 MySQL 中以任何方式自动执行此操作?我宁愿避免 mysqldump

更新:Richard Bronosky 向我展示了方式:-)

我需要在每个表中执行的查询:

alter table DBname.DBfield CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

生成所有其他查询的疯狂查询:

SELECT distinct CONCAT( 'alter table ', TABLE_SCHEMA, '.', TABLE_NAME, '  CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'DBname';
Run Code Online (Sandbox Code Playgroud)

我只想在一个数据库中执行它。一口气执行所有操作花费的时间太长。事实证明,它为每个表的每个字段生成一个查询。每个表只需要一个查询(与救援不同)。在文件上获取输出是我实现它的方式。

如何生成输出到文件:

mysql -B -N --user=user --password=secret -e "SELECT distinct CONCAT( 'alter table ', TABLE_SCHEMA, '.', TABLE_NAME, '  CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' …
Run Code Online (Sandbox Code Playgroud)

mysql automation sql

21
推荐指数
2
解决办法
4万
查看次数

git clone - 失败而不是提示输入凭据

在自动化工具中克隆 git 存储库时 - Web 前端、CI 系统,有时 git clone 调用会打开一个提示,要求输入用户名和密码(例如,当克隆不存在的 Github 存储库或在缺少 ssh 密钥的新节点上时)。

如何让 git 失败(最好带有合理的错误消息和退出代码)而不是等待服务器进程为其提供用户名和密码?

automation git

21
推荐指数
1
解决办法
2万
查看次数