public static String installPackageOrFail(Map<?,?> flags, String packageDefaultName) { return installPackageOr(flags, packageDefaultName, "exit 9"); } public static String installPackageOr(Map<?,?> flags, String packageDefaultName, String optionalCommandToRunIfNone) {
@Override public Task<Integer> sshTaskApply(AmbariAgent ambariAgent) { return SshEffectorTasks .ssh(installPackageOr(ImmutableMap.of(), "mysql-connector-java", installPackageOrFail(ImmutableMap.of(), "libmysql-java"))) .summary("Initialise Ranger requirements on " + ambariAgent.getId()) .machine(EffectorTasks.getSshMachine(ambariAgent)) .newTask() .asTask(); } }
@Override public Task<Integer> sshTaskApply(AmbariServer ambariServer) { return SshEffectorTasks .ssh( installPackageOr(ImmutableMap.of(), "mysql-connector-java", installPackageOrFail(ImmutableMap.of(), "libmysql-java")), sudo("ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar")) .summary("Initialise Ranger requirements on " + ambariServer.getId()) .machine(EffectorTasks.getSshMachine(ambariServer)) .newTask() .asTask(); } }
/** * Returns a command for installing the given package. * <p> * Warns, but does not fail or return non-zero if it ultimately fails. * <p> * Flags can contain common overrides for {@code apt}, {@code yum}, {@code port} and {@code brew} * as the package names can be different for each of those. Setting the default package name to * {@literal null} will use only the overridden package manager values. The {@code onlyifmissing} flag * adds a check for an executable, and only attempts to install packages if it is not found. * <pre> * installPackage(ImmutableMap.of("yum", "openssl-devel", "apt", "openssl libssl-dev zlib1g-dev"), "libssl-devel"); * installPackage(ImmutableMap.of("apt", "libaio1"), null); * installPackage(ImmutableMap.of("onlyifmissing", "curl"), "curl"); * </pre> */ public static String installPackage(Map<?,?> flags, String packageDefaultName) { return installPackageOr(flags, packageDefaultName, null); } public static String installPackageOrFail(Map<?,?> flags, String packageDefaultName) {
@Override public Task<Integer> sshTaskApply(AmbariAgent ambariAgent) { return SshEffectorTasks .ssh( installExecutable("mysql-server"), installPackageOr(ImmutableMap.of(), "mysql", installPackageOrFail(ImmutableMap.of(), "mysql-client")), alternatives(sudo("service mysqld restart"), sudo("service mysql restart")), String.format("mysql -u root -e 'create user `%s`@`%s` identified by \"%s\";'", getConfig(DB_USER), DB_HOST, getConfig(DB_PASSWORD)), String.format("mysql -u root -e 'grant all privileges on *.* to `%s`@`%s` identified by \"%s\" with grant option; flush privileges;'", getConfig(DB_USER), DB_HOST, getConfig(DB_PASSWORD))) .summary("Initialise MySQL requirements on " + ambariAgent.getId()) .machine(EffectorTasks.getSshMachine(ambariAgent)) .newTask() .asTask(); } }
/** * Install a particular Java runtime, fails if not possible. * <p> * <em><strong>Note</strong> Java 8 is not yet supported on SUSE</em> * * @return The command to install the given Java runtime. * @see #installJava6OrFail() * @see #installJava7Or6OrFail() * @see #installJavaLatestOrFail() */ public static String installJava(int version) { Preconditions.checkArgument(version == 6 || version == 7 || version == 8, "Supported Java versions are 6, 7, or 8"); List<String> commands = new LinkedList<String>(); commands.add(ok(addOpenJDKPPK())); commands.add(installPackageOr(MutableMap.of("apt", "openjdk-" + version + "-jdk","yum", "java-1." + version + ".0-openjdk-devel"), null, ifExecutableElse1("zypper", chainGroup( ok(sudo("zypper --non-interactive addrepo http://download.opensuse.org/repositories/Java:/openjdk6:/Factory/SLE_11_SP3 java_sles_11")), ok(sudo("zypper --non-interactive addrepo http://download.opensuse.org/repositories/Java:/openjdk6:/Factory/openSUSE_11.4 java_suse_11")), ok(sudo("zypper --non-interactive addrepo http://download.opensuse.org/repositories/Java:/openjdk6:/Factory/openSUSE_12.3 java_suse_12")), ok(sudo("zypper --non-interactive addrepo http://download.opensuse.org/repositories/Java:/openjdk6:/Factory/openSUSE_13.1 java_suse_13")), alternatives(installPackageOrFail(MutableMap.of("zypper", "java-1_" + version + "_0-openjdk-devel"), null), installPackageOrFail(MutableMap.of("zypper", "java-1_" + version + "_0-ibm"), null)))))); commands.add(ok(upgradeNSS())); return chainGroup(commands); }